diff --git a/src/compiler.ts b/src/compiler.ts index 0ee4365ecb..7941f73c5d 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -42,7 +42,6 @@ import { getBlockChildCount, getBlockChildAt, getBlockName, - needsExplicitUnreachable, getLocalSetValue, getGlobalGetName, isGlobalMutable, @@ -1169,6 +1168,27 @@ export class Compiler extends DiagnosticEmitter { } let type = global.type; + + // Enforce either an initializer, a definitive assignment or a nullable type + // to guarantee soundness when globals are accessed. In the absence of an + // initializer, a definitive assignment guarantees a runtime check, whereas + // a nullable type guarantees that obtaining default `null` is OK. Avoids: + // + // let foo: string; + // function bar() { + // foo.length; // no error in TS even though undefined + // } + // bar(); + if ( + !initializerNode && !global.is(CommonFlags.DefinitelyAssigned) && + type.isReference && !type.isNullableReference + ) { + this.error( + DiagnosticCode.Initializer_definitive_assignment_or_nullable_type_expected, + global.identifierNode.range + ); + } + let typeRef = type.toRef(); let isDeclaredConstant = global.is(CommonFlags.Const) || global.is(CommonFlags.Static | CommonFlags.Readonly); let isDeclaredInline = global.hasDecorator(DecoratorFlags.Inline); @@ -1639,7 +1659,7 @@ export class Compiler extends DiagnosticEmitter { // compile statements if (bodyNode.kind == NodeKind.Block) { - stmts = this.compileStatements((bodyNode).statements, true, stmts); + stmts = this.compileStatements((bodyNode).statements, stmts); } else { // must be an expression statement if not a block assert(bodyNode.kind == NodeKind.Expression); @@ -2089,9 +2109,7 @@ export class Compiler extends DiagnosticEmitter { /** Compiles a statement. */ compileStatement( /** Statement to compile. */ - statement: Statement, - /** Whether this is the last statement of the body, if known. */ - isLastInBody: bool = false + statement: Statement ): ExpressionRef { let module = this.module; let stmt: ExpressionRef; @@ -2133,7 +2151,7 @@ export class Compiler extends DiagnosticEmitter { break; } case NodeKind.Return: { - stmt = this.compileReturnStatement(statement, isLastInBody); + stmt = this.compileReturnStatement(statement); break; } case NodeKind.Switch: { @@ -2188,9 +2206,7 @@ export class Compiler extends DiagnosticEmitter { compileStatements( /** Statements to compile. */ statements: Statement[], - /** Whether this is an immediate body statement. */ - isBody: bool = false, - /** Statements to append to that is also returned. Created if omitted. */ + /** Statements to append to. Also returned, created if omitted. */ stmts: ExpressionRef[] | null = null ): ExpressionRef[] { let numStatements = statements.length; @@ -2198,10 +2214,9 @@ export class Compiler extends DiagnosticEmitter { stmts = new Array(numStatements); stmts.length = 0; } - let module = this.module; let flow = this.currentFlow; for (let i = 0; i < numStatements; ++i) { - let stmt = this.compileStatement(statements[i], isBody && i == numStatements - 1); + let stmt = this.compileStatement(statements[i]); switch (getExpressionId(stmt)) { case ExpressionId.Block: { if (!getBlockName(stmt)) { @@ -2213,10 +2228,7 @@ export class Compiler extends DiagnosticEmitter { default: stmts.push(stmt); case ExpressionId.Nop: } - if (flow.isAny(FlowFlags.Terminates | FlowFlags.Breaks)) { - if (needsExplicitUnreachable(stmt)) stmts.push(module.unreachable()); - break; - } + if (flow.isAny(FlowFlags.Terminates | FlowFlags.Breaks)) break; } return stmts; } @@ -2303,110 +2315,97 @@ export class Compiler extends DiagnosticEmitter { let outerFlow = this.currentFlow; let numLocalsBefore = outerFlow.targetFunction.localsByIndex.length; - // (block $break └►┐ flow - // (loop $loop ├◄───────────┐ recompile? - // (?block $continue └─┐ │ - // (body) │ bodyFlow │ - // ) ┌─┘ │ - // ┌◄┼►╢ │ breaks or terminates? - // │ └─┐ │ but does not continue - // (br_if (cond) $loop) │ │ condFlow │ - // │ ┌─┘ │ - // ├◄┴────────────┘ condition? - // ) └─┐ - // ) ┌─┘ - - let label = outerFlow.pushBreakLabel(); - let flow = outerFlow.fork(/* resetBreakContext */ true); - this.currentFlow = flow; + // (block $break + // (loop $loop + // (?block $continue + // (body) + // ) + // (br_if $loop (condition)) + // ) + // ) + + // Cases of interest: + // * If the body never falls through or continues, the condition never executes + // * If the condition is always true and body never breaks, overall flow terminates + // * If the body terminates with a continue, condition is still reached + // Compile the body (always executes) + let flow = outerFlow.fork(/* resetBreakContext */ true); + let label = flow.pushControlFlowLabel(); let breakLabel = `do-break|${label}`; flow.breakLabel = breakLabel; let continueLabel = `do-continue|${label}`; flow.continueLabel = continueLabel; let loopLabel = `do-loop|${label}`; - - // Compile the body (always executes) - let bodyFlow = flow.fork(); - this.currentFlow = bodyFlow; + this.currentFlow = flow; let bodyStmts = new Array(); let body = statement.body; if (body.kind == NodeKind.Block) { - this.compileStatements((body).statements, false, bodyStmts); + this.compileStatements((body).statements, bodyStmts); } else { bodyStmts.push(this.compileStatement(body)); } + flow.popControlFlowLabel(label); - // Shortcut if body never falls through - let possiblyContinues = bodyFlow.isAny(FlowFlags.Continues | FlowFlags.ConditionallyContinues); - if (bodyFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks) && !possiblyContinues) { + let possiblyContinues = flow.isAny(FlowFlags.Continues | FlowFlags.ConditionallyContinues); + let possiblyBreaks = flow.isAny(FlowFlags.Breaks | FlowFlags.ConditionallyBreaks); + let possiblyFallsThrough = !flow.isAny(FlowFlags.Terminates | FlowFlags.Breaks); + + // Shortcut if the condition is never reached + if (!possiblyFallsThrough && !possiblyContinues) { bodyStmts.push( module.unreachable() ); - flow.inherit(bodyFlow); + outerFlow.inherit(flow); - // Otherwise evaluate the condition - } else { - let condFlow = flow.fork(); - this.currentFlow = condFlow; - let condExpr = this.makeIsTrueish( - this.compileExpression(statement.condition, Type.i32), - this.currentType, - statement.condition - ); - let condKind = this.evaluateCondition(condExpr); - - if (possiblyContinues) { - bodyStmts = [ - module.block(continueLabel, bodyStmts) - ]; + // If the body also never breaks, the overall flow terminates + if (!possiblyBreaks) { + outerFlow.set(FlowFlags.Terminates); } - // Shortcut if condition is always false - if (condKind == ConditionKind.False) { - bodyStmts.push( - module.drop(condExpr) - ); - flow.inherit(bodyFlow); + // Otherwise compile and evaluate the condition (from here on always executes) + } else { + let condExpr = this.compileExpression(statement.condition, Type.bool); + let condExprTrueish = this.makeIsTrueish(condExpr, this.currentType, statement.condition); + let condKind = this.evaluateCondition(condExprTrueish); - // Terminate if condition is always true and body never breaks - } else if (condKind == ConditionKind.True && !bodyFlow.isAny(FlowFlags.Breaks | FlowFlags.ConditionallyBreaks)) { - bodyStmts.push( - module.drop(condExpr) - ); - bodyStmts.push( - module.br(loopLabel) - ); - flow.set(FlowFlags.Terminates); + // Detect if local flags are incompatible before and after looping, and + // if so recompile by unifying local flags between iterations. Note that + // this may be necessary multiple times where locals depend on each other. + let possiblyLoops = condKind != ConditionKind.False && (possiblyContinues || possiblyFallsThrough); + if (possiblyLoops && outerFlow.resetIfNeedsRecompile(flow.forkThen(condExpr), numLocalsBefore)) { + this.currentFlow = outerFlow; + return this.doCompileDoStatement(statement); + } - } else { - bodyStmts.push( - module.br(loopLabel, - condExpr - ) - ); - flow.inherit(condFlow); + if (possiblyContinues) { + bodyStmts[0] = module.block(continueLabel, bodyStmts); + bodyStmts.length = 1; + flow.unset(FlowFlags.Terminates); // Continue breaks to condition + } + bodyStmts.push( + module.br(loopLabel, + condExprTrueish + ) + ); + outerFlow.inherit(flow); - // Detect if local flags are incompatible before and after looping, and - // if so recompile by unifying local flags between iterations. Note that - // this may be necessary multiple times where locals depend on each other. - if (outerFlow.resetIfNeedsRecompile(flow, numLocalsBefore)) { - outerFlow.popBreakLabel(); - this.currentFlow = outerFlow; - return this.doCompileDoStatement(statement); - } + // Terminate if the condition is always true and body never breaks + if (condKind == ConditionKind.True && !possiblyBreaks) { + outerFlow.set(FlowFlags.Terminates); } } - // Finalize - outerFlow.inherit(flow); - outerFlow.popBreakLabel(); + // Finalize and leave everything else to the optimizer this.currentFlow = outerFlow; - let expr = module.block(breakLabel, [ - module.loop(loopLabel, - module.flatten(bodyStmts) - ) - ]); + let expr = module.loop(loopLabel, + module.flatten(bodyStmts) + ); + if (possiblyBreaks) { + expr = module.block(breakLabel, [ + expr + ]); + } if (outerFlow.is(FlowFlags.Terminates)) { expr = module.block(null, [ expr, module.unreachable() ]); } @@ -2440,37 +2439,26 @@ export class Compiler extends DiagnosticEmitter { let outerFlow = this.currentFlow; let numLocalsBefore = outerFlow.targetFunction.localsByIndex.length; - // (initializer) └►┐ flow - // (block $break │ - // (loop $loop ├◄───────────┐ recompile? - // (local.set $tcond (condition)) └─┐ condFlow │ - // ┌─┘ │ - // (if (local.get $tcond) ┌◄┤ │ condition? - // (block $continue │ │ │ - // (body) │ └─┐ bodyFlow │ - // │ ┌─┘ │ - // ) ├◄┼►╢ │ breaks or terminates? - // (incrementor) │ └─┐ incrFlow │ - // │ ┌─┘ │ - // │ └────────────┘ - // (br $loop) └─┐ - // ) │ - // ) │ - // ) │ - // ┌─┘ - - let label = outerFlow.pushBreakLabel(); - let stmts = new Array(); - let flow = outerFlow.fork(/* resetBreakContext */ true); - this.currentFlow = flow; - - let breakLabel = `for-break${label}`; - flow.breakLabel = breakLabel; - let continueLabel = `for-continue|${label}`; - flow.continueLabel = continueLabel; - let loopLabel = `for-loop|${label}`; + // (initializer) └►┐ flow + // (?block $break │ (initializer) + // (?loop $loop ┌◄┤ (condition) shortcut if false ◄┐ + // (if (condition) ├►┐ bodyFlow │ + // (then │ │ (body) │ + // (?block $continue │ │ if loops: (incrementor) ─────┘ + // (body) │ │ recompile body? + // ) ├◄┘ + // (incrementor) ┌◄┘ + // (br $loop) + // ) + // ) + // ) + // ) - // Compile initializer if present + // Compile initializer if present. The initializer might introduce scoped + // locals bound to the for statement, so create a new flow early. + let flow = outerFlow.fork(); + this.currentFlow = flow; + let stmts = new Array(); let initializer = statement.initializer; if (initializer) { assert( @@ -2480,121 +2468,108 @@ export class Compiler extends DiagnosticEmitter { stmts.push(this.compileStatement(initializer)); } - // Precompute the condition - let condFlow = flow.fork(); - this.currentFlow = condFlow; + // Precompute the condition if present, or default to `true` let condExpr: ExpressionRef; + let condExprTrueish: ExpressionRef; let condKind: ConditionKind; let condition = statement.condition; if (condition) { - condExpr = this.makeIsTrueish( - this.compileExpression(condition, Type.bool), - this.currentType, - condition - ); - condKind = this.evaluateCondition(condExpr); + condExpr = this.compileExpression(condition, Type.bool); + condExprTrueish = this.makeIsTrueish(condExpr, this.currentType, condition); + condKind = this.evaluateCondition(condExprTrueish); - // Shortcut if condition is always false (body never runs) + // Shortcut if condition is always false (body never executes) if (condKind == ConditionKind.False) { stmts.push( - module.drop(condExpr) + module.drop(condExprTrueish) ); - flow.inherit(condFlow); outerFlow.inherit(flow); - outerFlow.popBreakLabel(); this.currentFlow = outerFlow; return module.flatten(stmts); } } else { condExpr = module.i32(1); + condExprTrueish = condExpr; condKind = ConditionKind.True; } - - // From here on condition is either always true or unknown - - // Store condition result in a temp - let tcond = flow.getTempLocal(Type.bool); - let loopStmts = new Array(); - loopStmts.push( - module.local_set(tcond.index, condExpr, false) // bool - ); - - flow.inherit(condFlow); // always executes - this.currentFlow = flow; + // From here on condition is either true or unknown // Compile the body assuming the condition turned out true - let bodyFlow = flow.fork(); - bodyFlow.inheritNonnullIfTrue(condExpr); + let bodyFlow = flow.forkThen(condExpr, /* newBreakContext */ true); + let label = bodyFlow.pushControlFlowLabel(); + let breakLabel = `for-break${label}`; + bodyFlow.breakLabel = breakLabel; + let continueLabel = `for-continue|${label}`; + bodyFlow.continueLabel = continueLabel; + let loopLabel = `for-loop|${label}`; this.currentFlow = bodyFlow; let bodyStmts = new Array(); let body = statement.body; if (body.kind == NodeKind.Block) { - this.compileStatements((body).statements, false, bodyStmts); + this.compileStatements((body).statements, bodyStmts); } else { bodyStmts.push(this.compileStatement(body)); } + bodyFlow.popControlFlowLabel(label); + bodyFlow.breakLabel = null; + bodyFlow.continueLabel = null; - // Check if body terminates - if (bodyFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks)) { - bodyStmts.push(module.unreachable()); - } - if (condKind == ConditionKind.True) flow.inherit(bodyFlow); - else flow.inheritBranch(bodyFlow); + let possiblyFallsThrough = !bodyFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks); + let possiblyContinues = bodyFlow.isAny(FlowFlags.Continues | FlowFlags.ConditionallyContinues); + let possiblyBreaks = bodyFlow.isAny(FlowFlags.Breaks | FlowFlags.ConditionallyBreaks); - let ifStmts = new Array(); - ifStmts.push( - module.block(continueLabel, bodyStmts) - ); + if (possiblyContinues) { + bodyStmts[0] = module.block(continueLabel, bodyStmts); + bodyStmts.length = 1; + } - // Compile the incrementor if it runs - // Can still fall through to here if body continues, hence is already known to terminate - if (!bodyFlow.is(FlowFlags.Terminates) || bodyFlow.isAny(FlowFlags.Continues | FlowFlags.ConditionallyContinues)) { + // Compile the incrementor if it possibly executes + let possiblyLoops = possiblyContinues || possiblyFallsThrough; + if (possiblyLoops) { let incrementor = statement.incrementor; if (incrementor) { - let incrFlow = flow.fork(); - this.currentFlow = incrFlow; - ifStmts.push( + bodyStmts.push( this.compileExpression(incrementor, Type.void, Constraints.ConvImplicit | Constraints.WillDrop) ); - flow.inherit(incrFlow); // mostly local flags, also covers late termination by throwing - this.currentFlow = flow; } - - ifStmts.push( + bodyStmts.push( module.br(loopLabel) ); // Detect if local flags are incompatible before and after looping, and if // so recompile by unifying local flags between iterations. Note that this // may be necessary multiple times where locals depend on each other. - if (outerFlow.resetIfNeedsRecompile(flow, numLocalsBefore)) { - outerFlow.popBreakLabel(); + if (outerFlow.resetIfNeedsRecompile(bodyFlow.forkThen(condExpr), numLocalsBefore)) { this.currentFlow = outerFlow; return this.doCompileForStatement(statement); } } - loopStmts.push( - module.if(module.local_get(tcond.index, TypeRef.I32), - module.flatten(ifStmts) - ) - ); - stmts.push( - module.block(breakLabel, [ - module.loop(loopLabel, - module.flatten(loopStmts) - ) - ]) - ); - this.currentFlow = flow; + // Body executes at least once + if (condKind == ConditionKind.True) { + flow.inherit(bodyFlow); + + // Otherwise executes conditionally + } else { + flow.mergeBranch(bodyFlow); + } // Finalize outerFlow.inherit(flow); - outerFlow.popBreakLabel(); + this.currentFlow = outerFlow; + let expr = module.if(condExprTrueish, + module.flatten(bodyStmts) + ); + if (possiblyLoops) { + expr = module.loop(loopLabel, expr); + } + if (possiblyBreaks) { + expr = module.block(breakLabel, [ expr ]); + } + stmts.push(expr); if (outerFlow.is(FlowFlags.Terminates)) { stmts.push(module.unreachable()); } - this.currentFlow = outerFlow; return module.flatten(stmts); } @@ -2616,42 +2591,40 @@ export class Compiler extends DiagnosticEmitter { let ifTrue = statement.ifTrue; let ifFalse = statement.ifFalse; - // (if └►┐ flow - // (condition) ┌┴───────────┐ condition? - // (block │ │ - // (ifTrue) └►┐ thenFlow │ - // ┌─┘ │ - // ) ├─╢ │ - // (block │ ┌◄┤ present? - // (ifFalse) │ │ └►┐ elseFlow - // │ │ ┌─┘ - // ) │ │ ├─╢ - // ) └┬─────────┴─┘ - // ... ┌◄┘ + // (if (condition) + // (then (ifTrue)) + // (?else (ifFalse)) + // ) + + // Cases of interest: + // * If the condition is always true or false, the other branch is eliminated + // * If both then and else terminate, the overall flow does as well + // * Without an else, when then terminates, follow-up flow acts like an else // Precompute the condition (always executes) - let condExpr = this.makeIsTrueish( - this.compileExpression(statement.condition, Type.bool), + let condExpr = this.compileExpression(statement.condition, Type.bool); + let condExprTrueish = this.makeIsTrueish( + condExpr, this.currentType, statement.condition ); - let condKind = this.evaluateCondition(condExpr); + let condKind = this.evaluateCondition(condExprTrueish); // Shortcut if the condition is constant switch (condKind) { case ConditionKind.True: { return module.block(null, [ - module.drop(condExpr), + module.drop(condExprTrueish), this.compileStatement(ifTrue) ]); } case ConditionKind.False: { return ifFalse ? module.block(null, [ - module.drop(condExpr), + module.drop(condExprTrueish), this.compileStatement(ifFalse) ]) - : module.drop(condExpr); + : module.drop(condExprTrueish); } } @@ -2661,57 +2634,49 @@ export class Compiler extends DiagnosticEmitter { // Compile ifTrue assuming the condition turned out true let thenStmts = new Array(); - let thenFlow = flow.fork(); + let thenFlow = flow.forkThen(condExpr); this.currentFlow = thenFlow; - thenFlow.inheritNonnullIfTrue(condExpr); if (ifTrue.kind == NodeKind.Block) { - this.compileStatements((ifTrue).statements, false, thenStmts); + this.compileStatements((ifTrue).statements, thenStmts); } else { thenStmts.push(this.compileStatement(ifTrue)); } - let thenTerminates = thenFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks); - if (thenTerminates) { - thenStmts.push(module.unreachable()); - } this.currentFlow = flow; // Compile ifFalse assuming the condition turned out false, if present + let elseFlow = flow.forkElse(condExpr); if (ifFalse) { - let elseStmts = new Array(); - let elseFlow = flow.fork(); this.currentFlow = elseFlow; - elseFlow.inheritNonnullIfFalse(condExpr); + let elseStmts = new Array(); if (ifFalse.kind == NodeKind.Block) { - this.compileStatements((ifFalse).statements, false, elseStmts); + this.compileStatements((ifFalse).statements, elseStmts); } else { elseStmts.push(this.compileStatement(ifFalse)); } - let elseTerminates = elseFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks); - if (elseTerminates) { - elseStmts.push(module.unreachable()); - } + flow.inheritAlternatives(thenFlow, elseFlow); // terminates if both do this.currentFlow = flow; - flow.inheritMutual(thenFlow, elseFlow); - return module.if(condExpr, + return module.if(condExprTrueish, module.flatten(thenStmts), module.flatten(elseStmts) ); } else { - flow.inheritBranch(thenFlow); - flow.inheritNonnullIfFalse(condExpr, - thenFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks) - ? null // thenFlow terminates: just inherit - : thenFlow // must become nonnull in thenFlow otherwise - ); - return module.if(condExpr, + if (thenFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks)) { + // Only getting past if condition was false (acts like else) + flow.inherit(elseFlow); + flow.mergeSideEffects(thenFlow); + } else { + // Otherwise getting past conditionally + flow.inheritAlternatives(thenFlow, elseFlow); + } + this.currentFlow = flow; + return module.if(condExprTrueish, module.flatten(thenStmts) ); } } private compileReturnStatement( - statement: ReturnStatement, - isLastInBody: bool + statement: ReturnStatement ): ExpressionRef { let module = this.module; let expr: ExpressionRef = 0; @@ -2743,138 +2708,134 @@ export class Compiler extends DiagnosticEmitter { // Handle inline return if (flow.isInline) { - return !expr - ? isLastInBody - ? module.nop() - : module.br(assert(flow.inlineReturnLabel)) - : isLastInBody - ? expr - : this.currentType == Type.void - ? module.block(null, [ expr, module.br(assert(flow.inlineReturnLabel)) ]) - : module.br(assert(flow.inlineReturnLabel), 0, expr); + let inlineReturnLabel = assert(flow.inlineReturnLabel); + return expr + ? this.currentType == Type.void + ? module.block(null, [ expr, module.br(inlineReturnLabel) ]) + : module.br(inlineReturnLabel, 0, expr) + : module.br(inlineReturnLabel); } // Otherwise emit a normal return - return !expr - ? isLastInBody - ? module.nop() - : module.return() - : isLastInBody - ? expr - : this.currentType == Type.void - ? module.block(null, [ expr, module.return() ]) - : module.return(expr); + return expr + ? this.currentType == Type.void + ? module.block(null, [ expr, module.return() ]) + : module.return(expr) + : module.return(); } private compileSwitchStatement( statement: SwitchStatement ): ExpressionRef { let module = this.module; - let cases = statement.cases; let numCases = cases.length; - if (!numCases) { - return this.compileExpression(statement.condition, Type.void, - Constraints.ConvImplicit - ); - } - // Everything within a switch uses the same break context - let outerFlow = this.currentFlow; - let context = outerFlow.pushBreakLabel(); + // Compile the condition (always executes) + let condExpr = this.compileExpression(statement.condition, Type.u32, + Constraints.ConvImplicit + ); - // introduce a local for evaluating the condition (exactly once) + // Shortcut if there are no cases + if (!numCases) return module.drop(condExpr); + + // Assign the condition to a temporary local as we compare it multiple times + let outerFlow = this.currentFlow; let tempLocal = outerFlow.getTempLocal(Type.u32); let tempLocalIndex = tempLocal.index; - - // Prepend initializer to inner block. Does not initiate a new branch, yet. let breaks = new Array(1 + numCases); - breaks[0] = module.local_set( // initializer - tempLocalIndex, - this.compileExpression(statement.condition, Type.u32, - Constraints.ConvImplicit - ), - false // u32 - ); - - // make one br_if per (possibly dynamic) labeled case (binaryen optimizes to br_table where possible) + breaks[0] = module.local_set(tempLocalIndex, condExpr, false); // u32 + + // Make one br_if per labeled case and leave it to Binaryen to optimize the + // sequence of br_ifs to a br_table according to optimization levels let breakIndex = 1; let defaultIndex = -1; + let label = outerFlow.pushControlFlowLabel(); for (let i = 0; i < numCases; ++i) { let case_ = cases[i]; - let label = case_.label; - if (label) { - breaks[breakIndex++] = module.br(`case${i}|${context}`, - module.binary(BinaryOp.EqI32, - module.local_get(tempLocalIndex, TypeRef.I32), - this.compileExpression(label, Type.u32, - Constraints.ConvImplicit - ) - ) - ); - } else { + if (case_.isDefault) { defaultIndex = i; + continue; } + breaks[breakIndex++] = module.br(`case${i}|${label}`, + module.binary(BinaryOp.EqI32, + module.local_get(tempLocalIndex, TypeRef.I32), + this.compileExpression(assert(case_.label), Type.u32, + Constraints.ConvImplicit + ) + ) + ); } - // otherwise br to default respectively out of the switch if there is no default case + // If there is a default case, break to it, otherwise break out of the switch breaks[breakIndex] = module.br(defaultIndex >= 0 - ? `case${defaultIndex}|${context}` - : `break|${context}` + ? `case${defaultIndex}|${label}` + : `break|${label}` ); - // nest blocks in order - let currentBlock = module.block(`case0|${context}`, breaks, TypeRef.None); - let commonCategorical = FlowFlags.AnyCategorical; - let commonConditional = 0; + // Nest the case blocks in order, to be targeted by the br_if sequence + let currentBlock = module.block(`case0|${label}`, breaks, TypeRef.None); + let fallThroughFlow: Flow | null = null; + let breakingFlowAlternatives: Flow | null = null; for (let i = 0; i < numCases; ++i) { let case_ = cases[i]; let statements = case_.statements; let numStatements = statements.length; - // Each switch case initiates a new branch - let innerFlow = outerFlow.fork(); + // Can get here by matching the case or possibly by fall-through + let innerFlow = outerFlow.fork(/* newBreakContext */ true, /* newContinueContext */ false); + if (fallThroughFlow) innerFlow.mergeBranch(fallThroughFlow); this.currentFlow = innerFlow; - let breakLabel = `break|${context}`; + let breakLabel = `break|${label}`; innerFlow.breakLabel = breakLabel; let isLast = i == numCases - 1; - let nextLabel = isLast ? breakLabel : `case${i + 1}|${context}`; + let nextLabel = isLast ? breakLabel : `case${i + 1}|${label}`; let stmts = new Array(1 + numStatements); stmts[0] = currentBlock; let count = 1; - let terminates = false; + let possiblyFallsThrough = true; for (let j = 0; j < numStatements; ++j) { let stmt = this.compileStatement(statements[j]); if (getExpressionId(stmt) != ExpressionId.Nop) { stmts[count++] = stmt; } if (innerFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks)) { - if (innerFlow.is(FlowFlags.Terminates)) terminates = true; + possiblyFallsThrough = false; break; } } stmts.length = count; - if (terminates || isLast || innerFlow.isAny(FlowFlags.Breaks | FlowFlags.ConditionallyBreaks)) { - commonCategorical &= innerFlow.flags; - } + fallThroughFlow = possiblyFallsThrough ? innerFlow : null; + let possiblyBreaks = innerFlow.isAny(FlowFlags.Breaks | FlowFlags.ConditionallyBreaks); + innerFlow.unset(FlowFlags.Breaks | FlowFlags.ConditionallyBreaks); // clear - commonConditional |= innerFlow.deriveConditionalFlags(); + // Combine all alternatives that merge again with outer flow + if (possiblyBreaks || (isLast && possiblyFallsThrough)) { + if (breakingFlowAlternatives) breakingFlowAlternatives.inheritAlternatives(breakingFlowAlternatives, innerFlow); + else breakingFlowAlternatives = innerFlow; + + // Otherwise just merge the effects of a non-merging branch + } else if (!possiblyFallsThrough) { + outerFlow.mergeSideEffects(innerFlow); + } - // Switch back to the parent flow - innerFlow.unset( - FlowFlags.Breaks | - FlowFlags.ConditionallyBreaks - ); this.currentFlow = outerFlow; currentBlock = module.block(nextLabel, stmts, TypeRef.None); // must be a labeled block } - outerFlow.popBreakLabel(); + outerFlow.popControlFlowLabel(label); + + // If the switch has a default, we only get past through any breaking flow + if (defaultIndex >= 0) { + if (breakingFlowAlternatives) outerFlow.inherit(breakingFlowAlternatives); + else outerFlow.set(FlowFlags.Terminates); + + // Otherwise either none or any breaking flow can get past conditionally + } else if (breakingFlowAlternatives) { + outerFlow.mergeBranch(breakingFlowAlternatives); + } - // If the switch has a default (guaranteed to handle any value), propagate common flags - if (defaultIndex >= 0) outerFlow.flags |= commonCategorical & ~FlowFlags.Breaks; - outerFlow.flags |= commonConditional & ~FlowFlags.ConditionallyBreaks; - // TODO: what about local states? + this.currentFlow = outerFlow; return currentBlock; } @@ -2929,6 +2890,14 @@ export class Compiler extends DiagnosticEmitter { let name = declaration.name.text; let type: Type | null = null; let initExpr: ExpressionRef = 0; + let initType: Type | null = null; + + if (declaration.is(CommonFlags.DefinitelyAssigned)) { + this.warning( + DiagnosticCode.Definitive_assignment_has_no_effect_on_local_variables, + declaration.name.range + ); + } // Resolve type if annotated let typeNode = declaration.type; @@ -2949,6 +2918,7 @@ export class Compiler extends DiagnosticEmitter { initExpr = this.compileExpression(initializerNode, type, // reports Constraints.ConvImplicit ); + initType = this.currentType; pendingElements.delete(dummy); flow.freeScopedDummyLocal(name); } @@ -2959,6 +2929,7 @@ export class Compiler extends DiagnosticEmitter { let temp = flow.addScopedDummyLocal(name, Type.auto, statement); // pending dummy pendingElements.add(temp); initExpr = this.compileExpression(initializerNode, Type.auto); // reports + initType = this.currentType; pendingElements.delete(temp); flow.freeScopedDummyLocal(name); @@ -2969,7 +2940,7 @@ export class Compiler extends DiagnosticEmitter { ); continue; } - type = this.currentType; + type = initType; // Error if there's neither a type nor an initializer } else { @@ -3093,7 +3064,7 @@ export class Compiler extends DiagnosticEmitter { } if (initExpr) { initializers.push( - this.makeLocalAssignment(local, initExpr, type, false) + this.makeLocalAssignment(local, initExpr, initType ? initType : type, false) ); } else { // no need to assign zero @@ -3132,131 +3103,99 @@ export class Compiler extends DiagnosticEmitter { let outerFlow = this.currentFlow; let numLocalsBefore = outerFlow.targetFunction.localsByIndex.length; - // (block $break └►┐ flow - // (loop $continue ├◄───────────┐ recompile? - // (local.set $tcond (condition)) └─┐ condFlow │ - // ┌─┘ │ - // (if (local.get $tcond) ┌◄┤ │ condition? - // (body) │ └─┐ bodyFlow │ - // │ ┌─┘ │ - // ├◄┼►╢ │ breaks or terminates? - // (br $continue) │ └────────────┘ - // ) └─┐ - // ) │ - // ) ┌─┘ - - let label = outerFlow.pushBreakLabel(); - let stmts = new Array(); - let flow = outerFlow.fork(/* resetBreakContext */ true); - this.currentFlow = flow; - - let breakLabel = `while-break|${label}`; - flow.breakLabel = breakLabel; - let continueLabel = `while-continue|${label}`; - flow.continueLabel = continueLabel; - - // Precompute the condition - let condFlow = flow.fork(); - this.currentFlow = condFlow; - let condExpr = this.makeIsTrueish( - this.compileExpression(statement.condition, Type.bool), - this.currentType, - statement.condition - ); - let condKind = this.evaluateCondition(condExpr); + // (block $break + // (loop $continue + // (if (condition) + // (then + // (body) + // (br $continue) + // ) + // ) + // ) + + // Cases of interest: + // * If the condition is always false, eliminate the body as it never runs + // * If the condition is always true and the body never breaks, terminate + // * If the body runs but always terminates, continue as if condition was false + + // Compile and evaluate the condition (always executes) + let condExpr = this.compileExpression(statement.condition, Type.bool); + let condExprTrueish = this.makeIsTrueish(condExpr, this.currentType, statement.condition); + let condKind = this.evaluateCondition(condExprTrueish); // Shortcut if condition is always false (body never runs) if (condKind == ConditionKind.False) { - stmts.push( - module.drop(condExpr) - ); - outerFlow.popBreakLabel(); - this.currentFlow = outerFlow; - return module.flatten(stmts); + return module.drop(condExprTrueish); } - // From here on condition is either always true or unknown - - // Store condition result in a temp - let tcond = flow.getTempLocal(Type.bool); - stmts.push( - module.local_set(tcond.index, condExpr, false) // bool - ); - - flow.inherit(condFlow); // always executes - this.currentFlow = flow; - // Compile the body assuming the condition turned out true - let bodyFlow = flow.fork(); - bodyFlow.inheritNonnullIfTrue(condExpr); - this.currentFlow = bodyFlow; + let thenFlow = outerFlow.forkThen(condExpr, /* newBreakContext */ true); + let label = thenFlow.pushControlFlowLabel(); + let breakLabel = `while-break|${label}`; + thenFlow.breakLabel = breakLabel; + let continueLabel = `while-continue|${label}`; + thenFlow.continueLabel = continueLabel; + this.currentFlow = thenFlow; let bodyStmts = new Array(); let body = statement.body; if (body.kind == NodeKind.Block) { - this.compileStatements((body).statements, false, bodyStmts); + this.compileStatements((body).statements, bodyStmts); } else { bodyStmts.push(this.compileStatement(body)); } + bodyStmts.push( + module.br(continueLabel) + ); + thenFlow.popControlFlowLabel(label); - // Simplify if body always terminates - if (bodyFlow.is(FlowFlags.Terminates)) { - bodyStmts.push( - module.unreachable() - ); - if (condKind == ConditionKind.True) flow.inherit(bodyFlow); - else flow.inheritBranch(bodyFlow); + let possiblyContinues = thenFlow.isAny(FlowFlags.Continues | FlowFlags.ConditionallyContinues); + let possiblyBreaks = thenFlow.isAny(FlowFlags.Breaks | FlowFlags.ConditionallyBreaks); + let possiblyFallsThrough = !thenFlow.isAny(FlowFlags.Terminates | FlowFlags.Breaks); - // Terminate if condition is always true and body never breaks - } else if (condKind == ConditionKind.True && !bodyFlow.isAny(FlowFlags.Breaks | FlowFlags.ConditionallyBreaks)) { - bodyStmts.push( - module.br(continueLabel) - ); - flow.set(FlowFlags.Terminates); + // Detect if local flags are incompatible before and after looping, and + // if so recompile by unifying local flags between iterations. Note that + // this may be necessary multiple times where locals depend on each other. + let possiblyLoops = possiblyContinues || possiblyFallsThrough; + if (possiblyLoops && outerFlow.resetIfNeedsRecompile(thenFlow, numLocalsBefore)) { + this.currentFlow = outerFlow; + return this.doCompileWhileStatement(statement); + } - } else { - let breaks = bodyFlow.is(FlowFlags.Breaks); - if (breaks) { - bodyStmts.push( - module.unreachable() - ); - } else { - bodyStmts.push( - module.br(continueLabel) - ); + // If the condition is always true, the body's effects always happen + let alwaysTerminates = false; + if (condKind == ConditionKind.True) { + outerFlow.inherit(thenFlow); + + // If the body also never breaks, the overall flow terminates + if (!possiblyBreaks) { + alwaysTerminates = true; + outerFlow.set(FlowFlags.Terminates); } - if (condKind == ConditionKind.True) flow.inherit(bodyFlow); - else flow.inheritBranch(bodyFlow); - // Detect if local flags are incompatible before and after looping, and - // if so recompile by unifying local flags between iterations. Note that - // this may be necessary multiple times where locals depend on each other. - // Here: Only relevant if flow does not always break. - if (!breaks && outerFlow.resetIfNeedsRecompile(flow, numLocalsBefore)) { - outerFlow.popBreakLabel(); - this.currentFlow = outerFlow; - return this.doCompileWhileStatement(statement); + // Otherwise loop conditionally + } else { + let elseFlow = outerFlow.forkElse(condExpr); + if (!possiblyFallsThrough && !possiblyBreaks) { + // Only getting past if condition was false + outerFlow.inherit(elseFlow); + outerFlow.mergeSideEffects(thenFlow); + } else { + // Otherwise getting past conditionally + outerFlow.inheritAlternatives(thenFlow, elseFlow); } } - stmts.push( - module.if(module.local_get(tcond.index, TypeRef.I32), - module.flatten(bodyStmts) - ) - ); - this.currentFlow = flow; - // Finalize - outerFlow.inherit(flow); - outerFlow.popBreakLabel(); + // Finalize and leave everything else to the optimizer this.currentFlow = outerFlow; - let expr = module.block(breakLabel, [ + let stmts: ExpressionRef[] = [ module.loop(continueLabel, - module.flatten(stmts) + module.if(condExprTrueish, + module.flatten(bodyStmts) + ) ) - ]); - if (condKind == ConditionKind.True && outerFlow.is(FlowFlags.Terminates)) { - expr = module.block(null, [ expr, module.unreachable() ]); - } - return expr; + ]; + if (alwaysTerminates) stmts.push(module.unreachable()); + return module.block(breakLabel, stmts); } // === Expressions ============================================================================== @@ -4549,9 +4488,8 @@ export class Compiler extends DiagnosticEmitter { leftExpr = this.compileExpression(left, contextualType.exceptVoid, inheritedConstraints); leftType = this.currentType; - let rightFlow = flow.fork(); + let rightFlow = flow.forkThen(leftExpr); this.currentFlow = rightFlow; - rightFlow.inheritNonnullIfTrue(leftExpr); // simplify if only interested in true or false if (contextualType == Type.bool || contextualType == Type.void) { @@ -4561,6 +4499,7 @@ export class Compiler extends DiagnosticEmitter { let condKind = this.evaluateCondition(leftExpr); if (condKind == ConditionKind.False) { expr = leftExpr; + // RHS is not compiled } else { rightExpr = this.compileExpression(right, leftType, inheritedConstraints); rightType = this.currentType; @@ -4569,8 +4508,11 @@ export class Compiler extends DiagnosticEmitter { // simplify if lhs is always true if (condKind == ConditionKind.True) { expr = rightExpr; + flow.inherit(rightFlow); // true && RHS -> RHS always executes } else { expr = module.if(leftExpr, rightExpr, module.i32(0)); + flow.mergeBranch(rightFlow); // LHS && RHS -> RHS conditionally executes + flow.noteThen(expr, rightFlow); // LHS && RHS == true -> RHS always executes } } this.currentFlow = flow; @@ -4579,7 +4521,6 @@ export class Compiler extends DiagnosticEmitter { } else { rightExpr = this.compileExpression(right, leftType, inheritedConstraints | Constraints.ConvImplicit); rightType = this.currentType; - this.currentFlow = flow; // simplify if copying left is trivial if (expr = module.tryCopyTrivialExpression(leftExpr)) { @@ -4600,6 +4541,9 @@ export class Compiler extends DiagnosticEmitter { module.local_get(tempLocal.index, leftType.toRef()) ); } + flow.mergeBranch(rightFlow); // LHS && RHS -> RHS conditionally executes + flow.noteThen(expr, rightFlow); // LHS && RHS == true -> RHS always executes + this.currentFlow = flow; this.currentType = leftType; } break; @@ -4610,9 +4554,8 @@ export class Compiler extends DiagnosticEmitter { leftExpr = this.compileExpression(left, contextualType.exceptVoid, inheritedConstraints); leftType = this.currentType; - let rightFlow = flow.fork(); + let rightFlow = flow.forkElse(leftExpr); this.currentFlow = rightFlow; - rightFlow.inheritNonnullIfFalse(leftExpr); // simplify if only interested in true or false if (contextualType == Type.bool || contextualType == Type.void) { @@ -4622,6 +4565,7 @@ export class Compiler extends DiagnosticEmitter { let condKind = this.evaluateCondition(leftExpr); if (condKind == ConditionKind.True) { expr = leftExpr; + // RHS is not compiled } else { rightExpr = this.compileExpression(right, leftType, inheritedConstraints); rightType = this.currentType; @@ -4630,8 +4574,11 @@ export class Compiler extends DiagnosticEmitter { // simplify if lhs is always false if (condKind == ConditionKind.False) { expr = rightExpr; + flow.inherit(rightFlow); // false || RHS -> RHS always executes } else { expr = module.if(leftExpr, module.i32(1), rightExpr); + flow.mergeBranch(rightFlow); // LHS || RHS -> RHS conditionally executes + flow.noteElse(expr, rightFlow); // LHS || RHS == false -> RHS always executes } } this.currentFlow = flow; @@ -4640,7 +4587,6 @@ export class Compiler extends DiagnosticEmitter { } else { rightExpr = this.compileExpression(right, leftType, inheritedConstraints | Constraints.ConvImplicit); rightType = this.currentType; - this.currentFlow = flow; // simplify if copying left is trivial if (expr = module.tryCopyTrivialExpression(leftExpr)) { @@ -4662,6 +4608,9 @@ export class Compiler extends DiagnosticEmitter { rightExpr ); } + flow.mergeBranch(rightFlow); // LHS || RHS -> RHS conditionally executes + flow.noteElse(expr, rightFlow); // LHS || RHS == false -> RHS always executes + this.currentFlow = flow; this.currentType = leftType; } break; @@ -5911,7 +5860,7 @@ export class Compiler extends DiagnosticEmitter { this.currentType = type; return module.block(null, [ module.global_set(global.internalName, valueExpr), - module.global_get(global.internalName, typeRef) + module.global_get(global.internalName, typeRef) // known to be assigned now ], typeRef); } else { // global = value this.currentType = Type.void; @@ -6318,6 +6267,7 @@ export class Compiler extends DiagnosticEmitter { body.push( module.local_set(thisLocal.index, thisArg, thisType.isManaged) ); + flow.setLocalFlag(thisLocal.index, LocalFlags.Initialized); let base = classInstance.base; if (base) flow.addScopedAlias(CommonNames.super_, base.type, thisLocal.index); } else { @@ -6333,6 +6283,7 @@ export class Compiler extends DiagnosticEmitter { body.push( module.local_set(argumentLocal.index, paramExpr, paramType.isManaged) ); + flow.setLocalFlag(argumentLocal.index, LocalFlags.Initialized); } // Compile omitted arguments with final argument locals blocked. Doesn't need to take care of @@ -6770,24 +6721,13 @@ export class Compiler extends DiagnosticEmitter { continue; } let resolved = this.resolver.lookupExpression(initializer, instance.flow, parameterTypes[i], ReportMode.Swallow); - if (resolved) { - if (resolved.kind == ElementKind.Global) { - let global = resolved; - if (this.compileGlobal(global)) { - if (global.is(CommonFlags.Inlined)) { - operands.push( - this.compileInlineConstant(global, parameterTypes[i], Constraints.ConvImplicit) - ); - } else { - operands.push( - this.convertExpression( - module.global_get(global.internalName, global.type.toRef()), - global.type, parameterTypes[i], false, initializer - ) - ); - } - continue; - } + if (resolved && resolved.kind == ElementKind.Global) { + let global = resolved; + if (this.compileGlobal(global) && global.is(CommonFlags.Inlined)) { + operands.push( + this.compileInlineConstant(global, parameterTypes[i], Constraints.ConvImplicit) + ); + continue; } } } @@ -7152,7 +7092,7 @@ export class Compiler extends DiagnosticEmitter { } else { let ftype = instance.type; let local = flow.addScopedLocal(instance.name, ftype); - flow.setLocalFlag(local.index, LocalFlags.Constant); + flow.setLocalFlag(local.index, LocalFlags.Constant | LocalFlags.Initialized); expr = module.local_tee(local.index, expr, ftype.isManaged); } } @@ -7322,6 +7262,12 @@ export class Compiler extends DiagnosticEmitter { return this.compileInlineConstant(local, contextualType, constraints); } let localIndex = local.index; + if (!flow.isLocalFlag(localIndex, LocalFlags.Initialized)) { + this.error( + DiagnosticCode.Variable_0_is_used_before_being_assigned, + expression.range, local.name + ); + } assert(localIndex >= 0); if (localType.isNullableReference && flow.isLocalFlag(localIndex, LocalFlags.NonNull, false)) { localType = localType.nonNullableType; @@ -7358,8 +7304,12 @@ export class Compiler extends DiagnosticEmitter { if (global.is(CommonFlags.Inlined)) { return this.compileInlineConstant(global, contextualType, constraints); } + let expr = module.global_get(global.internalName, globalType.toRef()); + if (global.is(CommonFlags.DefinitelyAssigned) && globalType.isReference && !globalType.isNullableReference) { + expr = this.makeRuntimeNonNullCheck(expr, globalType, expression); + } this.currentType = globalType; - return module.global_get(global.internalName, globalType.toRef()); + return expr; } case ElementKind.EnumValue: { // here: if referenced from within the same enum let enumValue = target; @@ -8861,8 +8811,12 @@ export class Compiler extends DiagnosticEmitter { if (global.is(CommonFlags.Inlined)) { return this.compileInlineConstant(global, ctxType, constraints); } + let expr = module.global_get(global.internalName, globalType.toRef()); + if (global.is(CommonFlags.DefinitelyAssigned) && globalType.isReference && !globalType.isNullableReference) { + expr = this.makeRuntimeNonNullCheck(expr, globalType, expression); + } this.currentType = globalType; - return module.global_get(global.internalName, globalType.toRef()); + return expr; } case ElementKind.EnumValue: { // enum value let enumValue = target; @@ -8945,30 +8899,25 @@ export class Compiler extends DiagnosticEmitter { let ifThen = expression.ifThen; let ifElse = expression.ifElse; - let condExpr = this.makeIsTrueish( - this.compileExpression(expression.condition, Type.bool), - this.currentType, - expression.condition - ); + let condExpr = this.compileExpression(expression.condition, Type.bool); + let condExprTrueish = this.makeIsTrueish(condExpr, this.currentType, expression.condition); // Try to eliminate unnecesssary branches if the condition is constant // FIXME: skips common denominator, inconsistently picking branch type - let condKind = this.evaluateCondition(condExpr); + let condKind = this.evaluateCondition(condExprTrueish); if (condKind == ConditionKind.True) { - return module.maybeDropCondition(condExpr, this.compileExpression(ifThen, ctxType)); + return module.maybeDropCondition(condExprTrueish, this.compileExpression(ifThen, ctxType)); } if (condKind == ConditionKind.False) { - return module.maybeDropCondition(condExpr, this.compileExpression(ifElse, ctxType)); + return module.maybeDropCondition(condExprTrueish, this.compileExpression(ifElse, ctxType)); } let outerFlow = this.currentFlow; - let ifThenFlow = outerFlow.fork(); - ifThenFlow.inheritNonnullIfTrue(condExpr); + let ifThenFlow = outerFlow.forkThen(condExpr); this.currentFlow = ifThenFlow; let ifThenExpr = this.compileExpression(ifThen, ctxType); let ifThenType = this.currentType; - let ifElseFlow = outerFlow.fork(); - ifElseFlow.inheritNonnullIfFalse(condExpr); + let ifElseFlow = outerFlow.forkElse(condExpr); this.currentFlow = ifElseFlow; let ifElseExpr = this.compileExpression(ifElse, ctxType == Type.auto ? ifThenType : ctxType); let ifElseType = this.currentType; @@ -9000,10 +8949,10 @@ export class Compiler extends DiagnosticEmitter { this.currentType = commonType; } + outerFlow.inheritAlternatives(ifThenFlow, ifElseFlow); this.currentFlow = outerFlow; - outerFlow.inheritMutual(ifThenFlow, ifElseFlow); - return module.if(condExpr, ifThenExpr, ifElseExpr); + return module.if(condExprTrueish, ifThenExpr, ifElseExpr); } private compileUnaryPostfixExpression( @@ -10256,7 +10205,7 @@ export class Compiler extends DiagnosticEmitter { flow.setLocalFlag(tempIndex, LocalFlags.NonNull); let staticAbortCallExpr = this.makeStaticAbort( - this.ensureStaticString("unexpected null"), + this.ensureStaticString("Unexpected 'null' (not assigned or failed cast)"), reportNode ); // TODO: throw @@ -10396,5 +10345,5 @@ function mangleImportName( } } -let mangleImportName_moduleName: string; -let mangleImportName_elementName: string; +let mangleImportName_moduleName: string = ""; +let mangleImportName_elementName: string = ""; diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index 87edc3d34d..752ec4550d 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -49,6 +49,8 @@ "Only variables, functions and enums become WebAssembly module exports.": 235, "Literal '{0}' does not fit into 'i64' or 'u64' types.": 236, "Index signature accessors in type '{0}' differ in types.": 237, + "Initializer, definitive assignment or nullable type expected.": 238, + "Definitive assignment has no effect on local variables.": 239, "Importing the table disables some indirect call optimizations.": 901, "Exporting the table disables some indirect call optimizations.": 902, @@ -106,6 +108,7 @@ "Declaration expected.": 1146, "'const' declarations must be initialized.": 1155, "Unterminated regular expression literal.": 1161, + "Declarations with initializers cannot also have definite assignment assertions.": 1263, "Interface declaration cannot have 'implements' clause.": 1176, "Binary digit expected.": 1177, "Octal digit expected.": 1178, @@ -165,6 +168,7 @@ "Variable '{0}' used before its declaration.": 2448, "Cannot redeclare block-scoped variable '{0}'" : 2451, "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.": 2453, + "Variable '{0}' is used before being assigned.": 2454, "Type alias '{0}' circularly references itself.": 2456, "Type '{0}' has no property '{1}'.": 2460, "The '{0}' operator cannot be applied to type '{1}'.": 2469, diff --git a/src/flow.ts b/src/flow.ts index fbf9f296b1..31909c258a 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -246,6 +246,10 @@ export class Flow { thisFieldFlags: Map | null = null; /** The label we break to when encountering a return statement, when inlining. */ inlineReturnLabel: string | null = null; + /** Alternative flows if a compound expression is true-ish. */ + trueFlows: Map | null = null; + /** Alternative flows if a compound expression is false-ish. */ + falseFlows: Map | null = null; /** Tests if this is an inline flow. */ get isInline(): bool { @@ -308,21 +312,31 @@ export class Flow { } /** Forks this flow to a child flow. */ - fork(resetBreakContext: bool = false): Flow { + fork( + /** Whether a new break context is established, e.g. by a block. */ + newBreakContext: bool = false, + /** Whether a new continue context is established, e.g. by a loop. */ + newContinueContext: bool = newBreakContext + ): Flow { let branch = new Flow(this.targetFunction, this.inlineFunction); branch.parent = this; + branch.flags = this.flags; branch.outer = this.outer; - if (resetBreakContext) { - branch.flags = this.flags & ~( + if (newBreakContext) { + branch.flags &= ~( FlowFlags.Breaks | - FlowFlags.ConditionallyBreaks | + FlowFlags.ConditionallyBreaks + ); + } else { + branch.breakLabel = this.breakLabel; + } + if (newContinueContext) { + branch.flags &= ~( FlowFlags.Continues | FlowFlags.ConditionallyContinues ); } else { - branch.flags = this.flags; branch.continueLabel = this.continueLabel; - branch.breakLabel = this.breakLabel; } branch.localFlags = this.localFlags.slice(); if (this.sourceFunction.is(CommonFlags.Constructor)) { @@ -335,6 +349,52 @@ export class Flow { return branch; } + /** Forks this flow to a child flow where `condExpr` is true-ish. */ + forkThen( + /** Condition that turned out to be true. */ + condExpr: ExpressionRef, + /** Whether a new break context is established, e.g. by a block. */ + newBreakContext: bool = false, + /** Whether a new continue context is established, e.g. by a loop. */ + newContinueContext: bool = newBreakContext + ): Flow { + let flow = this.fork(newBreakContext, newContinueContext); + let trueFlows = this.trueFlows; + if (trueFlows && trueFlows.has(condExpr)) { + flow.inherit(changetype(trueFlows.get(condExpr))); + } + flow.inheritNonnullIfTrue(condExpr); + return flow; + } + + /** Remembers the alternative flow if `condExpr` turns out `true`. */ + noteThen(condExpr: ExpressionRef, trueFlow: Flow): void { + let trueFlows = this.trueFlows; + if (!trueFlows) this.trueFlows = trueFlows = new Map(); + trueFlows.set(condExpr, trueFlow); + } + + /** Forks this flow to a child flow where `condExpr` is false-ish. */ + forkElse( + /** Condition that turned out to be false. */ + condExpr: ExpressionRef + ): Flow { + let flow = this.fork(); + let falseFlows = this.falseFlows; + if (falseFlows && falseFlows.has(condExpr)) { + flow.inherit(changetype(falseFlows.get(condExpr))); + } + flow.inheritNonnullIfFalse(condExpr); + return flow; + } + + /** Remembers the alternative flow if `condExpr` turns out `false`. */ + noteElse(condExpr: ExpressionRef, falseFlow: Flow): void { + let falseFlows = this.falseFlows; + if (!falseFlows) this.falseFlows = falseFlows = new Map(); + falseFlows.set(condExpr, falseFlow); + } + /** Gets a free temporary local of the specified type. */ getTempLocal(type: Type): Local { let local = this.targetFunction.addLocal(type); @@ -523,36 +583,27 @@ export class Flow { } } - /** Pushes a new break label to the stack, for example when entering a loop that one can `break` from. */ - pushBreakLabel(): string { + /** Pushes a new control flow label, for example when entering a loop that one can `break` from. */ + pushControlFlowLabel(): i32 { let targetFunction = this.targetFunction; let id = targetFunction.nextBreakId++; let stack = targetFunction.breakStack; if (!stack) targetFunction.breakStack = [ id ]; else stack.push(id); - let label = id.toString(); - targetFunction.breakLabel = label; - return label; + return id; } - /** Pops the most recent break label from the stack. */ - popBreakLabel(): void { + /** Pops the most recent control flow label and validates that it matches. */ + popControlFlowLabel(expectedLabel: i32): void { let targetFunction = this.targetFunction; - let stack = assert(targetFunction.breakStack); - let length = assert(stack.length); - stack.pop(); - if (length > 1) { - targetFunction.breakLabel = stack[length - 2].toString(); - } else { - targetFunction.breakLabel = null; - targetFunction.breakStack = null; - } + let stack = assert(targetFunction.breakStack); // should exist + assert(stack.length); // should not be empty + assert(stack.pop() == expectedLabel); // should match } /** Inherits flags of another flow into this one, i.e. a finished inner block. */ inherit(other: Flow): void { assert(other.targetFunction == this.targetFunction); - assert(other.parent == this); // currently the case, but might change let otherFlags = other.flags; // respective inner flags are irrelevant if contexts differ @@ -571,18 +622,10 @@ export class Flow { this.thisFieldFlags = other.thisFieldFlags; } - /** Inherits flags of a conditional branch joining again with this one, i.e. then without else. */ - inheritBranch(other: Flow, conditionKind: ConditionKind = ConditionKind.Unknown): void { - assert(other.targetFunction == this.targetFunction); - switch (conditionKind) { - case ConditionKind.True: this.inherit(other); // always executes - case ConditionKind.False: return; // never executes - } - // Note that flags in `this` flow have already happened. For instance, - // a return cannot be undone no matter what'd happen in subsequent branches, - // but an allocation, which doesn't terminate, can become conditional. Not - // all flags have a corresponding conditional flag that's tracked. + /** Merges only the side effects of a branch, i.e. when not taken. */ + mergeSideEffects(other: Flow): void { + assert(other.targetFunction == this.targetFunction); let thisFlags = this.flags; let otherFlags = other.flags; @@ -653,8 +696,13 @@ export class Flow { } this.flags = newFlags | (thisFlags & (FlowFlags.UncheckedContext | FlowFlags.CtorParamContext)); + } - // local flags + /** Merges a branch joining again with this flow, i.e. then without else. */ + mergeBranch(other: Flow): void { + this.mergeSideEffects(other); + + // Local flags matter if the branch does not terminate let thisLocalFlags = this.localFlags; let numThisLocalFlags = thisLocalFlags.length; let otherLocalFlags = other.localFlags; @@ -675,12 +723,12 @@ export class Flow { // only be set if it has been observed prior to entering the branch. } - /** Inherits mutual flags of two alternate branches becoming this one, i.e. then with else. */ - inheritMutual(left: Flow, right: Flow): void { + /** Inherits two alternate branches to become this flow, i.e. then with else. */ + inheritAlternatives(left: Flow, right: Flow): void { assert(left.targetFunction == right.targetFunction); assert(left.targetFunction == this.targetFunction); - // This differs from the previous method in that no flags are guaranteed - // to happen unless it is the case in both flows. + // Differs from `mergeBranch` in that the alternatives are intersected to + // then become this branch. let leftFlags = left.flags; let rightFlags = right.flags; @@ -881,7 +929,7 @@ export class Flow { } /** Updates local states to reflect that this branch is only taken when `expr` is true-ish. */ - inheritNonnullIfTrue( + private inheritNonnullIfTrue( /** Expression being true. */ expr: ExpressionRef, /** If specified, only set the flag if also nonnull in this flow. */ @@ -995,7 +1043,7 @@ export class Flow { } /** Updates local states to reflect that this branch is only taken when `expr` is false-ish. */ - inheritNonnullIfFalse( + private inheritNonnullIfFalse( /** Expression being false. */ expr: ExpressionRef, /** If specified, only set the flag if also nonnull in this flow. */ diff --git a/src/module.ts b/src/module.ts index eb8644e4c2..20c05e8130 100644 --- a/src/module.ts +++ b/src/module.ts @@ -3617,32 +3617,6 @@ export class BinaryModule { ) {} } -/** Tests if an expression needs an explicit 'unreachable' when it is the terminating statement. */ -export function needsExplicitUnreachable(expr: ExpressionRef): bool { - // not applicable if pushing a value to the stack - if (binaryen._BinaryenExpressionGetType(expr) != TypeRef.Unreachable) { - return false; - } - - switch (binaryen._BinaryenExpressionGetId(expr)) { - case ExpressionId.Unreachable: - case ExpressionId.Return: return false; - case ExpressionId.Break: { - return binaryen._BinaryenBreakGetCondition(expr) != 0; - } - case ExpressionId.Block: { - if (!binaryen._BinaryenBlockGetName(expr)) { // can't break out of it - let numChildren = binaryen._BinaryenBlockGetNumChildren(expr); // last child needs unreachable - return ( - numChildren > 0 && - needsExplicitUnreachable(binaryen._BinaryenBlockGetChildAt(expr, numChildren - 1)) - ); - } - } - } - return true; -} - // TypeBuilder const DEBUG_TYPEBUILDER = false; diff --git a/src/parser.ts b/src/parser.ts index 38e8be6269..166c3d4132 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -985,6 +985,12 @@ export class Parser extends DiagnosticEmitter { } initializer = this.parseExpression(tn, Precedence.Comma + 1); if (!initializer) return null; + if (flags & CommonFlags.DefinitelyAssigned) { + this.error( + DiagnosticCode.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions, + initializer.range + ); + } } else if (!isFor) { if (flags & CommonFlags.Const) { if (!(flags & CommonFlags.Ambient)) { @@ -1001,7 +1007,7 @@ export class Parser extends DiagnosticEmitter { } } let range = Range.join(identifier.range, tn.range()); - if (initializer && (flags & CommonFlags.DefinitelyAssigned) != 0) { + if ((flags & CommonFlags.DefinitelyAssigned) != 0 && (flags & CommonFlags.Ambient) != 0) { this.error( DiagnosticCode.A_definite_assignment_assertion_is_not_permitted_in_this_context, range @@ -2383,12 +2389,15 @@ export class Parser extends DiagnosticEmitter { } initializer = this.parseExpression(tn); if (!initializer) return null; + if (flags & CommonFlags.DefinitelyAssigned) { + this.error( + DiagnosticCode.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions, + name.range + ); + } } let range = tn.range(startPos, tn.pos); - if ( - (flags & CommonFlags.DefinitelyAssigned) != 0 && - (isInterface || initializer || (flags & CommonFlags.Static) != 0) - ) { + if ((flags & CommonFlags.DefinitelyAssigned) != 0 && (isInterface || (flags & CommonFlags.Ambient) != 0)) { this.error( DiagnosticCode.A_definite_assignment_assertion_is_not_permitted_in_this_context, range diff --git a/src/program.ts b/src/program.ts index 63360df1be..1c1bc79727 100644 --- a/src/program.ts +++ b/src/program.ts @@ -138,7 +138,8 @@ import { } from "./resolver"; import { - Flow + Flow, + LocalFlags } from "./flow"; import { @@ -1983,7 +1984,7 @@ export class Program extends DiagnosticEmitter { } } classReference = classReference.base; - } while(classReference); + } while (classReference); } else { let signatureReference = type.getSignature(); if (signatureReference) { @@ -3767,7 +3768,8 @@ export class Function extends TypedElement { this.original = this; let program = prototype.program; this.type = signature.type; - this.flow = Flow.createDefault(this); + let flow = Flow.createDefault(this); + this.flow = flow; if (!prototype.is(CommonFlags.Ambient)) { let localIndex = 0; let thisType = signature.thisType; @@ -3782,6 +3784,7 @@ export class Function extends TypedElement { if (!scopedLocals) this.flow.scopedLocals = scopedLocals = new Map(); scopedLocals.set(CommonNames.this_, local); this.localsByIndex[local.index] = local; + flow.setLocalFlag(local.index, LocalFlags.Initialized); } let parameterTypes = signature.parameterTypes; for (let i = 0, k = parameterTypes.length; i < k; ++i) { @@ -3797,6 +3800,7 @@ export class Function extends TypedElement { if (!scopedLocals) this.flow.scopedLocals = scopedLocals = new Map(); scopedLocals.set(parameterName, local); this.localsByIndex[local.index] = local; + flow.setLocalFlag(local.index, LocalFlags.Initialized); } } registerConcreteElement(program, this); @@ -3872,15 +3876,13 @@ export class Function extends TypedElement { // used by flows to keep track of break labels nextBreakId: i32 = 0; breakStack: i32[] | null = null; - breakLabel: string | null = null; /** Finalizes the function once compiled, releasing no longer needed resources. */ finalize(module: Module, ref: FunctionRef): void { this.ref = ref; let breakStack = this.breakStack; - assert(!breakStack || !breakStack.length); // internal error - this.breakStack = breakStack = null; - this.breakLabel = null; + assert(!breakStack || !breakStack.length); // should be empty + this.breakStack = null; this.addDebugInfo(module, ref); } diff --git a/std/assembly/rt/itcms.ts b/std/assembly/rt/itcms.ts index 5b19c2a598..b44b69af25 100644 --- a/std/assembly/rt/itcms.ts +++ b/std/assembly/rt/itcms.ts @@ -49,7 +49,7 @@ import { E_ALLOCATION_TOO_LARGE, E_ALREADY_PINNED, E_NOT_PINNED } from "../util/ // @ts-ignore: decorator @lazy let pinSpace = initLazy(changetype(memory.data(offsetof()))); // @ts-ignore: decorator -@lazy let iter: Object; // null +@lazy let iter: Object = changetype(0); // unsafe initializion below function initLazy(space: Object): Object { space.nextWithColor = changetype(space); diff --git a/std/assembly/rt/tlsf.ts b/std/assembly/rt/tlsf.ts index 30669c775c..df437b82cb 100644 --- a/std/assembly/rt/tlsf.ts +++ b/std/assembly/rt/tlsf.ts @@ -137,7 +137,7 @@ import { E_ALLOCATION_TOO_LARGE } from "../util/error"; @inline const ROOT_SIZE: usize = HL_END + sizeof(); // @ts-ignore: decorator -@lazy export let ROOT: Root; +@lazy export let ROOT: Root = changetype(0); // unsafe initializion below /** Gets the second level map of the specified first level. */ // @ts-ignore: decorator diff --git a/std/assembly/staticarray.ts b/std/assembly/staticarray.ts index e21504e72e..874a5d07fa 100644 --- a/std/assembly/staticarray.ts +++ b/std/assembly/staticarray.ts @@ -178,10 +178,11 @@ export class StaticArray { throw new Error(E_INVALIDLENGTH); } let sourceSize = sourceLen << alignof(); - let out!: U; + let out = changetype(this); // FIXME: instanceof needs *some* value if (out instanceof Array) { out = changetype(__newArray(outLen, alignof(), idof>())); + // ^ FIXME: Function returns type U, but can't __newArray(U extends Array) let outStart = changetype>(out).dataStart; let otherStart = changetype>(other).dataStart; let thisStart = changetype(this); @@ -240,11 +241,12 @@ export class StaticArray { let sourceStart = changetype(this) + (start << alignof()); let size = length << alignof(); - let out!: U; + let out = changetype(this); // FIXME: instanceof needs *some* value if (out instanceof Array) { // return Array out = changetype(__newArray(length, alignof(), idof>())); + // ^ FIXME: Function returns type U, but can't __newArray(U extends Array) let outStart = changetype>(out).dataStart; if (isManaged()) { let off: usize = 0; diff --git a/std/assembly/symbol.ts b/std/assembly/symbol.ts index 5469f70043..e1e47262b5 100644 --- a/std/assembly/symbol.ts +++ b/std/assembly/symbol.ts @@ -1,10 +1,10 @@ import { Map } from "./map"; // @ts-ignore: decorator -@lazy let stringToId: Map; +@lazy let stringToId: Map = new Map(); // @ts-ignore: decorator -@lazy let idToString: Map; +@lazy let idToString: Map = new Map(); // @ts-ignore: decorator @lazy let nextId: usize = 12; // Symbol.unscopables + 1 @@ -64,8 +64,7 @@ import { Map } from "./map"; static readonly unscopables: symbol = changetype(11); static for(key: string): symbol { - if (!stringToId) { stringToId = new Map(); idToString = new Map(); } - else if (stringToId.has(key)) return changetype(stringToId.get(key)); + if (stringToId.has(key)) return changetype(stringToId.get(key)); let id = nextId++; if (!id) unreachable(); // out of ids stringToId.set(key, id); @@ -74,7 +73,7 @@ import { Map } from "./map"; } static keyFor(sym: symbol): string | null { - return idToString != null && idToString.has(changetype(sym)) + return idToString.has(changetype(sym)) ? idToString.get(changetype(sym)) : null; } diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index 386396b19f..d6dc6935f6 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -11,16 +11,16 @@ (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $NonNullable/z (mut i32) (i32.const 224)) - (global $~lib/memory/__data_end i32 (i32.const 300)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33068)) - (global $~lib/memory/__heap_base i32 (i32.const 33068)) + (global $~lib/memory/__data_end i32 (i32.const 364)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33132)) + (global $~lib/memory/__heap_base i32 (i32.const 33132)) (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\003\002\00\00\00\00\00\00\00") (data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s\00") (data (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00") (data (i32.const 124) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00z\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 236) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -36,12 +36,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -112,8 +112,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -142,6 +140,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -184,12 +183,14 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/string/String.__ne (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String.__eq i32.eqz + return ) (func $NonNullable/assertNonNull<~lib/string/String> (type $i32_=>_none) (param $t i32) i32.const 0 @@ -225,8 +226,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 33088 - i32.const 33136 + i32.const 33152 + i32.const 33200 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index c5e6ef1e1b..f94b1bdd09 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -3,7 +3,7 @@ (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $none_=>_none (func_subtype func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34092)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34156)) (memory $0 1) (data (i32.const 1036) "\1c") (data (i32.const 1048) "\02\00\00\00\06\00\00\00u\003\002") @@ -15,8 +15,8 @@ (data (i32.const 1160) "\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>") (data (i32.const 1228) "\1c") (data (i32.const 1240) "\02\00\00\00\02\00\00\00z") - (data (i32.const 1260) "<") - (data (i32.const 1272) "\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l") + (data (i32.const 1260) "|") + (data (i32.const 1272) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") (export "memory" (memory $0)) (start $~start) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) @@ -143,11 +143,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1324 + i32.const 1388 i32.lt_s if - i32.const 34112 - i32.const 34160 + i32.const 34176 + i32.const 34224 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/abi.debug.wat b/tests/compiler/abi.debug.wat index e70ed73bb4..5b5f53c0ee 100644 --- a/tests/compiler/abi.debug.wat +++ b/tests/compiler/abi.debug.wat @@ -19,6 +19,7 @@ (start $~start) (func $abi/internal (type $none_=>_i32) (result i32) i32.const 128 + return ) (func $start:abi (type $none_=>_none) (local $x i32) @@ -175,13 +176,16 @@ (func $abi/exported (type $none_=>_i32) (result i32) i32.const 128 i32.extend8_s + return ) (func $abi/exportedExported (type $none_=>_i32) (result i32) call $abi/exported + return ) (func $abi/exportedInternal (type $none_=>_i32) (result i32) call $abi/internal i32.extend8_s + return ) (func $~start (type $none_=>_none) call $start:abi diff --git a/tests/compiler/assert-nonnull.debug.wat b/tests/compiler/assert-nonnull.debug.wat index 722eb31459..141667b2a1 100644 --- a/tests/compiler/assert-nonnull.debug.wat +++ b/tests/compiler/assert-nonnull.debug.wat @@ -9,15 +9,15 @@ (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/memory/__data_end i32 (i32.const 380)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33148)) - (global $~lib/memory/__heap_base i32 (i32.const 33148)) + (global $~lib/memory/__data_end i32 (i32.const 444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33212)) + (global $~lib/memory/__heap_base i32 (i32.const 33212)) (memory $0 1) - (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data (i32.const 252) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 316) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -41,12 +41,13 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 2 i32.const 10 call $~lib/builtins/abort unreachable end + return ) (func $assert-nonnull/Foo#get:bar (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -78,7 +79,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 35 i32.const 10 call $~lib/builtins/abort @@ -86,6 +87,7 @@ end i32.load $0 call_indirect $0 (type $none_=>_i32) + return ) (func $assert-nonnull/Foo#get:baz (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -96,8 +98,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 33168 - i32.const 33216 + i32.const 33232 + i32.const 33280 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -121,7 +123,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 11 i32.const 10 call $~lib/builtins/abort @@ -139,6 +141,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $assert-nonnull/testArr (type $i32_=>_i32) (param $foo i32) (result i32) (local $1 i32) @@ -157,7 +160,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 19 i32.const 10 call $~lib/builtins/abort @@ -176,6 +179,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $assert-nonnull/testAll (type $i32_=>_i32) (param $foo i32) (result i32) (local $1 i32) @@ -201,7 +205,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 27 i32.const 10 call $~lib/builtins/abort @@ -221,7 +225,7 @@ local.get $2 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 27 i32.const 10 call $~lib/builtins/abort @@ -240,7 +244,7 @@ local.get $3 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 27 i32.const 10 call $~lib/builtins/abort @@ -252,6 +256,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $assert-nonnull/testAll2 (type $i32_=>_i32) (param $foo i32) (result i32) (local $1 i32) @@ -277,7 +282,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 31 i32.const 10 call $~lib/builtins/abort @@ -297,7 +302,7 @@ local.get $2 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 31 i32.const 10 call $~lib/builtins/abort @@ -316,7 +321,7 @@ local.get $3 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 31 i32.const 10 call $~lib/builtins/abort @@ -328,6 +333,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $assert-nonnull/testProp (type $i32_=>_i32) (param $foo i32) (result i32) (local $1 i32) @@ -350,7 +356,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 15 i32.const 10 call $~lib/builtins/abort @@ -362,6 +368,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -379,8 +386,8 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 160 i32.const 224 + i32.const 288 i32.const 114 i32.const 42 call $~lib/builtins/abort @@ -404,8 +411,8 @@ local.get $value i32.eqz if - i32.const 272 - i32.const 224 + i32.const 336 + i32.const 288 i32.const 118 i32.const 40 call $~lib/builtins/abort @@ -418,6 +425,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -435,8 +443,8 @@ call $~lib/array/Array#get:length_ i32.ge_u if - i32.const 160 i32.const 224 + i32.const 288 i32.const 114 i32.const 42 call $~lib/builtins/abort @@ -464,6 +472,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $assert-nonnull/testElem (type $i32_=>_i32) (param $foo i32) (result i32) (local $1 i32) @@ -487,7 +496,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 23 i32.const 10 call $~lib/builtins/abort @@ -499,6 +508,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $assert-nonnull/testFn2 (type $i32_=>_i32) (param $fn i32) (result i32) (local $1 i32) @@ -519,7 +529,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 39 i32.const 13 call $~lib/builtins/abort @@ -538,6 +548,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $assert-nonnull/testRet (type $i32_=>_i32) (param $fn i32) (result i32) (local $1 i32) @@ -560,7 +571,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 44 i32.const 10 call $~lib/builtins/abort @@ -575,7 +586,7 @@ local.get $2 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 44 i32.const 10 call $~lib/builtins/abort @@ -587,6 +598,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $assert-nonnull/testObjFn (type $i32_=>_i32) (param $foo i32) (result i32) (local $1 i32) @@ -611,7 +623,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 48 i32.const 10 call $~lib/builtins/abort @@ -625,6 +637,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $assert-nonnull/testObjRet (type $i32_=>_i32) (param $foo i32) (result i32) (local $1 i32) @@ -651,7 +664,7 @@ local.get $1 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 52 i32.const 10 call $~lib/builtins/abort @@ -666,7 +679,7 @@ local.get $2 else i32.const 32 - i32.const 96 + i32.const 160 i32.const 52 i32.const 10 call $~lib/builtins/abort @@ -678,6 +691,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $export:assert-nonnull/testVar (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index d588e4c6c9..6152e7cb36 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -3,18 +3,18 @@ (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34172)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34236)) (memory $0 1) - (data (i32.const 1036) "<") - (data (i32.const 1048) "\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l") - (data (i32.const 1100) "<") - (data (i32.const 1112) "\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s") + (data (i32.const 1036) "|") + (data (i32.const 1048) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") (data (i32.const 1164) "<") - (data (i32.const 1176) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 1228) ",") - (data (i32.const 1240) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data (i32.const 1276) "|") - (data (i32.const 1288) "\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") + (data (i32.const 1176) "\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s") + (data (i32.const 1228) "<") + (data (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data (i32.const 1292) ",") + (data (i32.const 1304) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 1340) "|") + (data (i32.const 1352) "\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") (table $0 1 1 funcref) (export "memory" (memory $0)) (export "testVar" (func $export:assert-nonnull/testVar)) @@ -36,11 +36,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s if - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -53,8 +53,8 @@ i32.load $0 offset=12 i32.eqz if - i32.const 1184 i32.const 1248 + i32.const 1312 i32.const 114 i32.const 42 call $~lib/builtins/abort @@ -79,11 +79,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s if - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -96,7 +96,7 @@ i32.eqz if i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 2 i32.const 10 call $~lib/builtins/abort @@ -116,7 +116,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -128,7 +128,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -138,7 +138,7 @@ i32.eqz if i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 11 i32.const 10 call $~lib/builtins/abort @@ -162,8 +162,8 @@ local.get $0 return end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -177,7 +177,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -189,7 +189,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -205,7 +205,7 @@ i32.eqz if i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 15 i32.const 10 call $~lib/builtins/abort @@ -222,8 +222,8 @@ local.get $0 return end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -237,7 +237,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -249,7 +249,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -259,7 +259,7 @@ i32.eqz if i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 19 i32.const 10 call $~lib/builtins/abort @@ -274,7 +274,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -284,8 +284,8 @@ i32.load $0 offset=12 i32.eqz if - i32.const 1184 i32.const 1248 + i32.const 1312 i32.const 114 i32.const 42 call $~lib/builtins/abort @@ -300,8 +300,8 @@ local.get $0 i32.eqz if - i32.const 1296 - i32.const 1248 + i32.const 1360 + i32.const 1312 i32.const 118 i32.const 40 call $~lib/builtins/abort @@ -322,8 +322,8 @@ local.get $0 return end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -337,7 +337,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -349,7 +349,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -365,7 +365,7 @@ i32.eqz if i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 23 i32.const 10 call $~lib/builtins/abort @@ -382,8 +382,8 @@ local.get $0 return end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -398,7 +398,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -410,7 +410,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -456,15 +456,15 @@ local.get $0 return end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 27 i32.const 10 call $~lib/builtins/abort @@ -479,7 +479,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -491,7 +491,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -537,15 +537,15 @@ local.get $0 return end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 31 i32.const 10 call $~lib/builtins/abort @@ -557,11 +557,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s if - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -574,7 +574,7 @@ i32.eqz if i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 35 i32.const 10 call $~lib/builtins/abort @@ -594,7 +594,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -606,7 +606,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -617,7 +617,7 @@ i32.eqz if i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 39 i32.const 13 call $~lib/builtins/abort @@ -632,8 +632,8 @@ drop unreachable end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -648,7 +648,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -660,7 +660,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -675,15 +675,15 @@ drop unreachable end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 44 i32.const 10 call $~lib/builtins/abort @@ -697,7 +697,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -709,7 +709,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -725,7 +725,7 @@ i32.eqz if i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 48 i32.const 10 call $~lib/builtins/abort @@ -737,8 +737,8 @@ drop unreachable end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -753,7 +753,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -765,7 +765,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1404 + i32.const 1468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -786,15 +786,15 @@ drop unreachable end - i32.const 34192 - i32.const 34240 + i32.const 34256 + i32.const 34304 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1056 - i32.const 1120 + i32.const 1184 i32.const 52 i32.const 10 call $~lib/builtins/abort diff --git a/tests/compiler/bigint-integration.debug.wat b/tests/compiler/bigint-integration.debug.wat index d3a369eb8d..cd703989cd 100644 --- a/tests/compiler/bigint-integration.debug.wat +++ b/tests/compiler/bigint-integration.debug.wat @@ -46,6 +46,7 @@ ) (func $bigint-integration/getInternalValue (type $none_=>_i64) (result i64) global.get $bigint-integration/internalValue + return ) (func $~start (type $none_=>_none) global.get $~started diff --git a/tests/compiler/binary.debug.wat b/tests/compiler/binary.debug.wat index 5ded4b0727..bd7c7e1b46 100644 --- a/tests/compiler/binary.debug.wat +++ b/tests/compiler/binary.debug.wat @@ -26,7 +26,6 @@ (local $out i32) (local $log i32) (local $4 i32) - (local $5 i32) i32.const 1 local.set $out i32.const 0 @@ -217,8 +216,6 @@ end loop $while-continue|1 local.get $e - local.set $5 - local.get $5 if local.get $e i32.const 1 @@ -241,6 +238,7 @@ end end local.get $out + return ) (func $~lib/math/NativeMath.pow (type $f64_f64_=>_f64) (param $x f64) (param $y f64) (result f64) (local $x|2 f64) @@ -425,17 +423,20 @@ i64.ge_u end if - local.get $iy - local.set $u - local.get $u - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740992 - i64.const 1 - i64.sub - i64.ge_u + block $~lib/util/math/zeroinfnan|inlined.0 (result i32) + local.get $iy + local.set $u + local.get $u + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + br $~lib/util/math/zeroinfnan|inlined.0 + end if local.get $iy i64.const 1 @@ -503,17 +504,20 @@ f64.mul br $~lib/util/math/pow_lut|inlined.0 end - local.get $ix - local.set $u|10 - local.get $u|10 - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740992 - i64.const 1 - i64.sub - i64.ge_u + block $~lib/util/math/zeroinfnan|inlined.1 (result i32) + local.get $ix + local.set $u|10 + local.get $u|10 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + br $~lib/util/math/zeroinfnan|inlined.1 + end if local.get $x|2 local.get $x|2 @@ -578,6 +582,7 @@ br $~lib/util/math/checkint|inlined.0 end i32.const 2 + br $~lib/util/math/checkint|inlined.0 end i32.const 1 i32.eq @@ -659,6 +664,7 @@ br $~lib/util/math/checkint|inlined.1 end i32.const 2 + br $~lib/util/math/checkint|inlined.1 end local.set $yint local.get $yint @@ -751,196 +757,199 @@ local.set $ix end end - local.get $ix - local.set $ix|17 - local.get $ix|17 - i64.const 4604531861337669632 - i64.sub - local.set $tmp - local.get $tmp - i64.const 52 - i32.const 7 - i64.extend_i32_s - i64.sub - i64.shr_u - i32.const 127 - i64.extend_i32_s - i64.and - i32.wrap_i64 - local.set $i - local.get $tmp - i64.const 52 - i64.shr_s - local.set $k - local.get $ix|17 - local.get $tmp - i64.const 4095 - i64.const 52 - i64.shl - i64.and - i64.sub - local.set $iz - local.get $iz - f64.reinterpret_i64 - local.set $z - local.get $k - f64.convert_i64_s - local.set $kd - i32.const 8 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 - local.set $invc - i32.const 8 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 offset=16 - local.set $logc - i32.const 8 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 offset=24 - local.set $logctail - local.get $iz - i64.const 2147483648 - i64.add - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.set $zhi - local.get $z - local.get $zhi - f64.sub - local.set $zlo - local.get $zhi - local.get $invc - f64.mul - f64.const 1 - f64.sub - local.set $rhi - local.get $zlo - local.get $invc - f64.mul - local.set $rlo - local.get $rhi - local.get $rlo - f64.add - local.set $r - local.get $kd - f64.const 0.6931471805598903 - f64.mul - local.get $logc - f64.add - local.set $t1 - local.get $t1 - local.get $r - f64.add - local.set $t2 - local.get $kd - f64.const 5.497923018708371e-14 - f64.mul - local.get $logctail - f64.add - local.set $lo1 - local.get $t1 - local.get $t2 - f64.sub - local.get $r - f64.add - local.set $lo2 - f64.const -0.5 - local.get $r - f64.mul - local.set $ar - local.get $r - local.get $ar - f64.mul - local.set $ar2 - local.get $r - local.get $ar2 - f64.mul - local.set $ar3 - f64.const -0.5 - local.get $rhi - f64.mul - local.set $arhi - local.get $rhi - local.get $arhi - f64.mul - local.set $arhi2 - local.get $t2 - local.get $arhi2 - f64.add - local.set $hi - local.get $rlo - local.get $ar - local.get $arhi - f64.add - f64.mul - local.set $lo3 - local.get $t2 - local.get $hi - f64.sub - local.get $arhi2 - f64.add - local.set $lo4 - local.get $ar3 - f64.const -0.6666666666666679 - local.get $r - f64.const 0.5000000000000007 - f64.mul - f64.add - local.get $ar2 - f64.const 0.7999999995323976 - local.get $r - f64.const -0.6666666663487739 - f64.mul - f64.add - local.get $ar2 - f64.const -1.142909628459501 - local.get $r - f64.const 1.0000415263675542 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.set $p - local.get $lo1 - local.get $lo2 - f64.add - local.get $lo3 - f64.add - local.get $lo4 - f64.add - local.get $p - f64.add - local.set $lo - local.get $hi - local.get $lo - f64.add - local.set $y|46 - local.get $hi - local.get $y|46 - f64.sub - local.get $lo - f64.add - global.set $~lib/util/math/log_tail - local.get $y|46 + block $~lib/util/math/log_inline|inlined.0 (result f64) + local.get $ix + local.set $ix|17 + local.get $ix|17 + i64.const 4604531861337669632 + i64.sub + local.set $tmp + local.get $tmp + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shr_u + i32.const 127 + i64.extend_i32_s + i64.and + i32.wrap_i64 + local.set $i + local.get $tmp + i64.const 52 + i64.shr_s + local.set $k + local.get $ix|17 + local.get $tmp + i64.const 4095 + i64.const 52 + i64.shl + i64.and + i64.sub + local.set $iz + local.get $iz + f64.reinterpret_i64 + local.set $z + local.get $k + f64.convert_i64_s + local.set $kd + i32.const 8 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 + local.set $invc + i32.const 8 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 offset=16 + local.set $logc + i32.const 8 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 offset=24 + local.set $logctail + local.get $iz + i64.const 2147483648 + i64.add + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $zhi + local.get $z + local.get $zhi + f64.sub + local.set $zlo + local.get $zhi + local.get $invc + f64.mul + f64.const 1 + f64.sub + local.set $rhi + local.get $zlo + local.get $invc + f64.mul + local.set $rlo + local.get $rhi + local.get $rlo + f64.add + local.set $r + local.get $kd + f64.const 0.6931471805598903 + f64.mul + local.get $logc + f64.add + local.set $t1 + local.get $t1 + local.get $r + f64.add + local.set $t2 + local.get $kd + f64.const 5.497923018708371e-14 + f64.mul + local.get $logctail + f64.add + local.set $lo1 + local.get $t1 + local.get $t2 + f64.sub + local.get $r + f64.add + local.set $lo2 + f64.const -0.5 + local.get $r + f64.mul + local.set $ar + local.get $r + local.get $ar + f64.mul + local.set $ar2 + local.get $r + local.get $ar2 + f64.mul + local.set $ar3 + f64.const -0.5 + local.get $rhi + f64.mul + local.set $arhi + local.get $rhi + local.get $arhi + f64.mul + local.set $arhi2 + local.get $t2 + local.get $arhi2 + f64.add + local.set $hi + local.get $rlo + local.get $ar + local.get $arhi + f64.add + f64.mul + local.set $lo3 + local.get $t2 + local.get $hi + f64.sub + local.get $arhi2 + f64.add + local.set $lo4 + local.get $ar3 + f64.const -0.6666666666666679 + local.get $r + f64.const 0.5000000000000007 + f64.mul + f64.add + local.get $ar2 + f64.const 0.7999999995323976 + local.get $r + f64.const -0.6666666663487739 + f64.mul + f64.add + local.get $ar2 + f64.const -1.142909628459501 + local.get $r + f64.const 1.0000415263675542 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $p + local.get $lo1 + local.get $lo2 + f64.add + local.get $lo3 + f64.add + local.get $lo4 + f64.add + local.get $p + f64.add + local.set $lo + local.get $hi + local.get $lo + f64.add + local.set $y|46 + local.get $hi + local.get $y|46 + f64.sub + local.get $lo + f64.add + global.set $~lib/util/math/log_tail + local.get $y|46 + br $~lib/util/math/log_inline|inlined.0 + end local.set $hi|47 global.get $~lib/util/math/log_tail local.set $lo|48 @@ -1020,35 +1029,47 @@ i64.const 0 i64.lt_s if (result f64) - local.get $sign_bias|57 - local.set $sign - local.get $sign - local.set $sign|72 - i64.const 1152921504606846976 - f64.reinterpret_i64 - local.set $y|73 - local.get $y|73 - f64.neg - local.get $y|73 - local.get $sign|72 - select - local.get $y|73 - f64.mul + block $~lib/util/math/uflow|inlined.0 (result f64) + local.get $sign_bias|57 + local.set $sign + block $~lib/util/math/xflow|inlined.0 (result f64) + local.get $sign + local.set $sign|72 + i64.const 1152921504606846976 + f64.reinterpret_i64 + local.set $y|73 + local.get $y|73 + f64.neg + local.get $y|73 + local.get $sign|72 + select + local.get $y|73 + f64.mul + br $~lib/util/math/xflow|inlined.0 + end + br $~lib/util/math/uflow|inlined.0 + end else - local.get $sign_bias|57 - local.set $sign|74 - local.get $sign|74 - local.set $sign|75 - i64.const 8070450532247928832 - f64.reinterpret_i64 - local.set $y|76 - local.get $y|76 - f64.neg - local.get $y|76 - local.get $sign|75 - select - local.get $y|76 - f64.mul + block $~lib/util/math/oflow|inlined.0 (result f64) + local.get $sign_bias|57 + local.set $sign|74 + block $~lib/util/math/xflow|inlined.1 (result f64) + local.get $sign|74 + local.set $sign|75 + i64.const 8070450532247928832 + f64.reinterpret_i64 + local.set $y|76 + local.get $y|76 + f64.neg + local.get $y|76 + local.get $sign|75 + select + local.get $y|76 + f64.mul + br $~lib/util/math/xflow|inlined.1 + end + br $~lib/util/math/oflow|inlined.0 + end end br $~lib/util/math/exp_inline|inlined.0 end @@ -1245,6 +1266,7 @@ local.get $y|81 f64.const 2.2250738585072014e-308 f64.mul + br $~lib/util/math/specialcase|inlined.0 end br $~lib/util/math/exp_inline|inlined.0 end @@ -1256,7 +1278,9 @@ local.get $tmp|69 f64.mul f64.add + br $~lib/util/math/exp_inline|inlined.0 end + br $~lib/util/math/pow_lut|inlined.0 end return ) @@ -1269,7 +1293,6 @@ (local $uy1 i32) (local $m f32) (local $ux1 i32) - (local $10 i32) (local $shift i32) local.get $y f32.abs @@ -1417,8 +1440,6 @@ local.get $ex local.get $ey i32.gt_s - local.set $10 - local.get $10 if local.get $ux local.get $uy @@ -1510,6 +1531,7 @@ local.get $sm i32.or f32.reinterpret_i32 + return ) (func $~lib/math/NativeMathf.pow (type $f32_f32_=>_f32) (param $x f32) (param $y f32) (result f32) (local $x|2 f32) @@ -1636,19 +1658,22 @@ i32.const 8388608 i32.sub i32.ge_u - local.get $iy - local.set $ux - local.get $ux - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.const 2139095040 - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.ge_u + block $~lib/util/math/zeroinfnanf|inlined.0 (result i32) + local.get $iy + local.set $ux + local.get $ux + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.ge_u + br $~lib/util/math/zeroinfnanf|inlined.0 + end i32.const 0 i32.ne local.tee $ny @@ -1728,19 +1753,22 @@ f32.mul br $~lib/util/math/powf_lut|inlined.0 end - local.get $ix - local.set $ux|9 - local.get $ux|9 - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.const 2139095040 - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.ge_u + block $~lib/util/math/zeroinfnanf|inlined.1 (result i32) + local.get $ix + local.set $ux|9 + local.get $ux|9 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.ge_u + br $~lib/util/math/zeroinfnanf|inlined.1 + end if local.get $x|2 local.get $x|2 @@ -1800,6 +1828,7 @@ br $~lib/util/math/checkintf|inlined.0 end i32.const 2 + br $~lib/util/math/checkintf|inlined.0 end i32.const 1 i32.eq @@ -1877,6 +1906,7 @@ br $~lib/util/math/checkintf|inlined.1 end i32.const 2 + br $~lib/util/math/checkintf|inlined.1 end local.set $yint local.get $yint @@ -1925,102 +1955,105 @@ local.set $ix end end - local.get $ix - local.set $ux|16 - local.get $ux|16 - i32.const 1060306944 - i32.sub - local.set $tmp - local.get $tmp - i32.const 23 - i32.const 4 - i32.sub - i32.shr_u - i32.const 15 - i32.and - local.set $i - local.get $tmp - i32.const -8388608 - i32.and - local.set $top - local.get $ux|16 - local.get $top - i32.sub - local.set $uz - local.get $top - i32.const 23 - i32.shr_s - local.set $k - i32.const 6152 - local.get $i - i32.const 1 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 - local.set $invc - i32.const 6152 - local.get $i - i32.const 1 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 offset=8 - local.set $logc - local.get $uz - f32.reinterpret_i32 - f64.promote_f32 - local.set $z - local.get $z - local.get $invc - f64.mul - f64.const 1 - f64.sub - local.set $r - local.get $logc - local.get $k - f64.convert_i32_s - f64.add - local.set $y0 - f64.const 0.288457581109214 - local.get $r - f64.mul - f64.const -0.36092606229713164 - f64.add - local.set $y|27 - f64.const 0.480898481472577 - local.get $r - f64.mul - f64.const -0.7213474675006291 - f64.add - local.set $p - f64.const 1.4426950408774342 - local.get $r - f64.mul - local.get $y0 - f64.add - local.set $q - local.get $r - local.get $r - f64.mul - local.set $r - local.get $q - local.get $p - local.get $r - f64.mul - f64.add - local.set $q - local.get $y|27 - local.get $r - local.get $r - f64.mul - f64.mul - local.get $q - f64.add - local.set $y|27 - local.get $y|27 + block $~lib/util/math/log2f_inline|inlined.0 (result f64) + local.get $ix + local.set $ux|16 + local.get $ux|16 + i32.const 1060306944 + i32.sub + local.set $tmp + local.get $tmp + i32.const 23 + i32.const 4 + i32.sub + i32.shr_u + i32.const 15 + i32.and + local.set $i + local.get $tmp + i32.const -8388608 + i32.and + local.set $top + local.get $ux|16 + local.get $top + i32.sub + local.set $uz + local.get $top + i32.const 23 + i32.shr_s + local.set $k + i32.const 6152 + local.get $i + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 + local.set $invc + i32.const 6152 + local.get $i + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 offset=8 + local.set $logc + local.get $uz + f32.reinterpret_i32 + f64.promote_f32 + local.set $z + local.get $z + local.get $invc + f64.mul + f64.const 1 + f64.sub + local.set $r + local.get $logc + local.get $k + f64.convert_i32_s + f64.add + local.set $y0 + f64.const 0.288457581109214 + local.get $r + f64.mul + f64.const -0.36092606229713164 + f64.add + local.set $y|27 + f64.const 0.480898481472577 + local.get $r + f64.mul + f64.const -0.7213474675006291 + f64.add + local.set $p + f64.const 1.4426950408774342 + local.get $r + f64.mul + local.get $y0 + f64.add + local.set $q + local.get $r + local.get $r + f64.mul + local.set $r + local.get $q + local.get $p + local.get $r + f64.mul + f64.add + local.set $q + local.get $y|27 + local.get $r + local.get $r + f64.mul + f64.mul + local.get $q + f64.add + local.set $y|27 + local.get $y|27 + br $~lib/util/math/log2f_inline|inlined.0 + end local.set $logx local.get $y|3 f64.promote_f32 @@ -2040,111 +2073,127 @@ f64.const 127.99999995700433 f64.gt if - local.get $signBias - local.set $sign - local.get $sign - local.set $sign|33 - i32.const 1879048192 - f32.reinterpret_i32 - local.set $y|34 - local.get $y|34 - f32.neg - local.get $y|34 - local.get $sign|33 - select - local.get $y|34 - f32.mul + block $~lib/util/math/oflowf|inlined.0 (result f32) + local.get $signBias + local.set $sign + block $~lib/util/math/xflowf|inlined.0 (result f32) + local.get $sign + local.set $sign|33 + i32.const 1879048192 + f32.reinterpret_i32 + local.set $y|34 + local.get $y|34 + f32.neg + local.get $y|34 + local.get $sign|33 + select + local.get $y|34 + f32.mul + br $~lib/util/math/xflowf|inlined.0 + end + br $~lib/util/math/oflowf|inlined.0 + end br $~lib/util/math/powf_lut|inlined.0 end local.get $ylogx f64.const -150 f64.le if - local.get $signBias - local.set $sign|35 - local.get $sign|35 - local.set $sign|36 - i32.const 268435456 - f32.reinterpret_i32 - local.set $y|37 - local.get $y|37 - f32.neg - local.get $y|37 - local.get $sign|36 - select - local.get $y|37 - f32.mul + block $~lib/util/math/uflowf|inlined.0 (result f32) + local.get $signBias + local.set $sign|35 + block $~lib/util/math/xflowf|inlined.1 (result f32) + local.get $sign|35 + local.set $sign|36 + i32.const 268435456 + f32.reinterpret_i32 + local.set $y|37 + local.get $y|37 + f32.neg + local.get $y|37 + local.get $sign|36 + select + local.get $y|37 + f32.mul + br $~lib/util/math/xflowf|inlined.1 + end + br $~lib/util/math/uflowf|inlined.0 + end br $~lib/util/math/powf_lut|inlined.0 end end - local.get $ylogx - local.set $xd - local.get $signBias - local.set $signBias|39 - local.get $xd - f64.const 211106232532992 - f64.add - local.set $kd - local.get $kd - i64.reinterpret_f64 - local.set $ki - local.get $xd - local.get $kd - f64.const 211106232532992 - f64.sub - f64.sub - local.set $r|42 - i32.const 6408 - local.get $ki - i32.wrap_i64 - i32.const 31 - i32.and - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.set $t - local.get $t - local.get $ki - local.get $signBias|39 - i64.extend_i32_u - i64.add - i64.const 52 - i32.const 5 - i64.extend_i32_s - i64.sub - i64.shl - i64.add - local.set $t - local.get $t - f64.reinterpret_i64 - local.set $s - f64.const 0.05550361559341535 - local.get $r|42 - f64.mul - f64.const 0.2402284522445722 - f64.add - local.set $z|44 - f64.const 0.6931471806916203 - local.get $r|42 - f64.mul - f64.const 1 - f64.add - local.set $y|45 - local.get $y|45 - local.get $z|44 - local.get $r|42 - local.get $r|42 - f64.mul - f64.mul - f64.add - local.set $y|45 - local.get $y|45 - local.get $s - f64.mul - local.set $y|45 - local.get $y|45 - f32.demote_f64 + block $~lib/util/math/exp2f_inline|inlined.0 (result f32) + local.get $ylogx + local.set $xd + local.get $signBias + local.set $signBias|39 + local.get $xd + f64.const 211106232532992 + f64.add + local.set $kd + local.get $kd + i64.reinterpret_f64 + local.set $ki + local.get $xd + local.get $kd + f64.const 211106232532992 + f64.sub + f64.sub + local.set $r|42 + i32.const 6408 + local.get $ki + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.set $t + local.get $t + local.get $ki + local.get $signBias|39 + i64.extend_i32_u + i64.add + i64.const 52 + i32.const 5 + i64.extend_i32_s + i64.sub + i64.shl + i64.add + local.set $t + local.get $t + f64.reinterpret_i64 + local.set $s + f64.const 0.05550361559341535 + local.get $r|42 + f64.mul + f64.const 0.2402284522445722 + f64.add + local.set $z|44 + f64.const 0.6931471806916203 + local.get $r|42 + f64.mul + f64.const 1 + f64.add + local.set $y|45 + local.get $y|45 + local.get $z|44 + local.get $r|42 + local.get $r|42 + f64.mul + f64.mul + f64.add + local.set $y|45 + local.get $y|45 + local.get $s + f64.mul + local.set $y|45 + local.get $y|45 + f32.demote_f64 + br $~lib/util/math/exp2f_inline|inlined.0 + end + br $~lib/util/math/powf_lut|inlined.0 end return ) @@ -2157,7 +2206,6 @@ (local $uy1 i64) (local $m f64) (local $ux1 i64) - (local $10 i32) (local $shift i64) local.get $y f64.abs @@ -2309,8 +2357,6 @@ local.get $ex local.get $ey i64.gt_s - local.set $10 - local.get $10 if local.get $ux local.get $uy @@ -2404,6 +2450,7 @@ i64.shl i64.or f64.reinterpret_i64 + return ) (func $start:binary (type $none_=>_none) global.get $binary/i diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index a4d07ee15c..46e2282f13 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -126,17 +126,21 @@ local.get $a local.get $b i32.add + return ) (func $bindings/esm/plainFunction64 (type $i64_i64_=>_i64) (param $a i64) (param $b i64) (result i64) local.get $a local.get $b i64.add + return ) (func $bindings/esm/getMaxUnsigned32 (type $none_=>_i32) (result i32) global.get $~lib/builtins/u32.MAX_VALUE + return ) (func $bindings/esm/getMaxUnsigned64 (type $none_=>_i64) (result i64) global.get $~lib/builtins/u64.MAX_VALUE + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -147,6 +151,7 @@ i32.const 20 i32.sub call $~lib/rt/common/OBJECT#get:rtSize + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -166,6 +171,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -178,17 +184,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -200,8 +207,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -344,6 +349,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -363,6 +369,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -448,15 +455,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -483,6 +487,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -658,22 +663,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -698,16 +706,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -803,18 +814,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -838,18 +852,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -859,12 +876,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1012,22 +1032,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1072,16 +1095,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1136,10 +1162,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1255,6 +1284,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1264,15 +1294,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1333,17 +1361,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1355,22 +1381,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1443,6 +1467,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1503,8 +1528,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1549,8 +1572,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1600,8 +1621,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1683,6 +1702,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1761,6 +1781,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1776,6 +1797,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1866,16 +1888,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1908,16 +1933,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1931,46 +1959,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2007,10 +2042,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2130,30 +2168,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2224,6 +2268,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2236,6 +2281,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2298,6 +2344,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2306,21 +2353,25 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/string/String.__concat (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String#concat + return ) (func $bindings/esm/stringFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b call $~lib/string/String.__concat + return ) (func $bindings/esm/stringFunctionOptional (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b call $~lib/string/String.__concat + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2418,12 +2469,14 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u + return ) (func $~lib/typedarray/Float32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u + return ) (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2451,6 +2504,7 @@ i32.shl i32.add i32.load16_s $0 + return ) (func $~lib/typedarray/Uint64Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index @@ -2498,6 +2552,7 @@ i32.shl i32.add f32.load $0 + return ) (func $~lib/staticarray/StaticArray#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2506,6 +2561,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u + return ) (func $~lib/staticarray/StaticArray#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -2531,6 +2587,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/staticarray/StaticArray#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this @@ -2563,9 +2620,11 @@ ) (func $bindings/esm/staticarrayU16 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $bindings/esm/staticarrayI64 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -2598,6 +2657,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2628,6 +2688,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2681,6 +2742,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -2928,12 +2990,15 @@ (func $bindings/esm/newInternref (type $none_=>_i32) (result i32) i32.const 0 call $bindings/esm/NonPlainObject#constructor + return ) (func $bindings/esm/internrefFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a + return ) (func $bindings/esm/functionFunction (type $i32_=>_i32) (param $fn i32) (result i32) local.get $fn + return ) (func $~lib/rt/itcms/__pin (type $i32_=>_i32) (param $ptr i32) (result i32) (local $obj i32) @@ -2963,6 +3028,7 @@ call $~lib/rt/itcms/Object#linkTo end local.get $ptr + return ) (func $~lib/rt/itcms/__unpin (type $i32_=>_none) (param $ptr i32) (local $obj i32) @@ -3003,8 +3069,6 @@ end ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -3015,8 +3079,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -3030,8 +3092,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -3206,7 +3266,6 @@ (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -3224,8 +3283,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -3467,6 +3524,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $bindings/esm/bufferFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $aByteLength i32) @@ -3512,6 +3570,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $5 + return ) (func $~lib/string/String#concat (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $thisSize i32) @@ -3577,6 +3636,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 + return ) (func $bindings/esm/stringFunctionOptional@varargs (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $2 i32) @@ -3724,10 +3784,8 @@ (func $bindings/esm/typedarrayFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $out i32) (local $i i32) - (local $4 i32) - (local $i|5 i32) - (local $6 i32) - (local $7 i32) + (local $i|4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3753,8 +3811,6 @@ local.get $a call $~lib/typedarray/Int16Array#get:length i32.lt_s - local.set $4 - local.get $4 if local.get $out local.get $i @@ -3771,39 +3827,38 @@ end end i32.const 0 - local.set $i|5 + local.set $i|4 loop $for-loop|1 - local.get $i|5 + local.get $i|4 local.get $b call $~lib/typedarray/Float32Array#get:length i32.lt_s - local.set $6 - local.get $6 if local.get $out local.get $a call $~lib/typedarray/Int16Array#get:length - local.get $i|5 + local.get $i|4 i32.add local.get $b - local.get $i|5 + local.get $i|4 call $~lib/typedarray/Float32Array#__get i64.trunc_sat_f32_u call $~lib/typedarray/Uint64Array#__set - local.get $i|5 + local.get $i|4 i32.const 1 i32.add - local.set $i|5 + local.set $i|4 br $for-loop|1 end end local.get $out - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 + return ) (func $~lib/staticarray/StaticArray#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $outSize i32) @@ -3851,14 +3906,13 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $bindings/esm/staticarrayFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $c i32) (local $i i32) - (local $4 i32) - (local $i|5 i32) - (local $6 i32) - (local $7 i32) + (local $i|4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3884,8 +3938,6 @@ local.get $a call $~lib/staticarray/StaticArray#get:length i32.lt_s - local.set $4 - local.get $4 if local.get $c local.get $i @@ -3901,38 +3953,37 @@ end end i32.const 0 - local.set $i|5 + local.set $i|4 loop $for-loop|1 - local.get $i|5 + local.get $i|4 local.get $b call $~lib/staticarray/StaticArray#get:length i32.lt_s - local.set $6 - local.get $6 if local.get $c local.get $a call $~lib/staticarray/StaticArray#get:length - local.get $i|5 + local.get $i|4 i32.add local.get $b - local.get $i|5 + local.get $i|4 call $~lib/staticarray/StaticArray#__get call $~lib/staticarray/StaticArray#__set - local.get $i|5 + local.get $i|4 i32.const 1 i32.add - local.set $i|5 + local.set $i|4 br $for-loop|1 end end local.get $c - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -4027,10 +4078,8 @@ (func $bindings/esm/arrayFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $c i32) (local $i i32) - (local $4 i32) - (local $i|5 i32) - (local $6 i32) - (local $7 i32) + (local $i|4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4056,8 +4105,6 @@ local.get $a call $~lib/array/Array#get:length i32.lt_s - local.set $4 - local.get $4 if local.get $c local.get $i @@ -4073,38 +4120,37 @@ end end i32.const 0 - local.set $i|5 + local.set $i|4 loop $for-loop|1 - local.get $i|5 + local.get $i|4 local.get $b call $~lib/array/Array#get:length i32.lt_s - local.set $6 - local.get $6 if local.get $c local.get $a call $~lib/array/Array#get:length - local.get $i|5 + local.get $i|4 i32.add local.get $b - local.get $i|5 + local.get $i|4 call $~lib/array/Array#__get call $~lib/array/Array#__set - local.get $i|5 + local.get $i|4 i32.const 1 i32.add - local.set $i|5 + local.set $i|4 br $for-loop|1 end end local.get $c - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -4252,6 +4298,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $bindings/esm/NonPlainObject#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index 5fc5a0f499..e4bce4e2b2 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -2104,12 +2104,12 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $bindings/esm/NonPlainObject - block $~lib/array/Array<~lib/string/String> - block $bindings/esm/PlainObject + block $folding-inner0 + block $invalid + block $bindings/esm/NonPlainObject + block $~lib/array/Array<~lib/string/String> + block $bindings/esm/PlainObject + block $~lib/array/Array block $~lib/staticarray/StaticArray block $~lib/staticarray/StaticArray block $~lib/staticarray/StaticArray @@ -2121,7 +2121,7 @@ i32.const 8 i32.sub i32.load $0 - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $~lib/function/Function<%28%29=>void> $folding-inner0 $folding-inner0 $folding-inner0 $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $folding-inner1 $bindings/esm/PlainObject $folding-inner0 $~lib/array/Array<~lib/string/String> $bindings/esm/NonPlainObject $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $~lib/function/Function<%28%29=>void> $folding-inner0 $folding-inner0 $folding-inner0 $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $~lib/array/Array $bindings/esm/PlainObject $folding-inner0 $~lib/array/Array<~lib/string/String> $bindings/esm/NonPlainObject $invalid end return end @@ -2145,21 +2145,7 @@ return end local.get $0 - i32.load $0 offset=56 - local.tee $1 - if - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.load $0 offset=60 - local.tee $1 - if - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.load $0 offset=64 + i32.load $0 local.tee $0 if local.get $0 @@ -2168,47 +2154,68 @@ return end local.get $0 - i32.load $0 offset=4 + i32.load $0 offset=56 local.tee $1 + if + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end local.get $0 - i32.load $0 offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 + i32.load $0 offset=60 + local.tee $1 + if + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.load $0 offset=64 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load $0 offset=4 + local.tee $1 + local.get $0 + i32.load $0 offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if local.get $1 - local.get $3 - i32.lt_u + i32.load $0 + local.tee $3 if - local.get $1 - i32.load $0 - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - br $folding-inner1 + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit end return end - unreachable - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + return end - return + unreachable end local.get $0 i32.load $0 @@ -2307,6 +2314,239 @@ i32.const 1648 global.set $~lib/rt/itcms/fromSpace ) + (func $bindings/esm/typedarrayFunction (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + local.get $1 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.add + local.set $3 + local.get $6 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store $0 + local.get $2 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store $0 + end + local.get $2 + i32.const 0 + i32.store $0 + local.get $2 + i32.const 0 + i32.store $0 offset=4 + local.get $2 + i32.const 0 + i32.store $0 offset=8 + local.get $3 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store $0 offset=4 + local.get $2 + local.tee $3 + local.get $7 + i32.store $0 + local.get $7 + if + local.get $3 + local.get $7 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $7 + i32.store $0 offset=4 + local.get $3 + local.get $4 + i32.store $0 offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $3 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $3 + i32.store $0 + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + i32.lt_s + if + local.get $2 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $2 + local.get $0 + i32.load $0 offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i64.load16_s $0 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $1 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.lt_s + if + local.get $2 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + i32.add + local.set $4 + local.get $2 + local.get $1 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + local.get $1 + i32.load $0 offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load $0 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 34944 + i32.const 34992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $export:bindings/esm/bufferFunction (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -2518,259 +2758,37 @@ ) (func $export:bindings/esm/typedarrayFunction (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store $0 - local.get $2 - local.get $1 - i32.store $0 offset=4 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store $0 - local.get $4 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) - local.get $0 - local.tee $2 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.get $1 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.add - local.set $5 - local.get $4 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - local.get $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 0 - i32.store $0 offset=4 - local.get $0 - i32.const 0 - i32.store $0 offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1248 - i32.const 1296 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store $0 offset=4 - local.get $0 - local.get $5 - i32.store $0 - local.get $5 - if - local.get $0 - local.get $5 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $5 - i32.store $0 offset=4 - local.get $0 - local.get $6 - i32.store $0 offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor - end - br $folding-inner1 - end - local.tee $0 - i32.store $0 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - i32.lt_s - if - local.get $3 - local.get $2 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $3 - local.get $2 - i32.load $0 offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i64.load16_s $0 - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.lt_s - if - local.get $3 - local.get $2 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - i32.add - local.set $4 - local.get $3 - local.get $1 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $4 - local.get $1 - i32.load $0 offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load $0 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + if + i32.const 34944 + i32.const 34992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 34944 - i32.const 34992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store $0 + local.get $2 + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + call $bindings/esm/typedarrayFunction + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $export:bindings/esm/staticarrayFunction (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2969,6 +2987,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2979,174 +2998,162 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store $0 - local.get $2 + local.get $3 local.get $1 i32.store $0 offset=4 - block $__inlined_func$bindings/esm/arrayFunction (result i32) - local.get $0 - local.set $3 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=12 + local.get $1 + i32.load $0 offset=12 + i32.add + local.set $6 + local.get $3 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $4 + i64.const 0 + i64.store $0 + local.get $4 + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 + i32.const 0 + i32.store $0 + local.get $4 + i32.const 0 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.store $0 offset=8 + local.get $4 + i32.const 0 + i32.store $0 offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store $0 offset=4 + local.get $4 + local.get $5 + i32.store $0 + local.get $5 + if + local.get $4 + local.get $5 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $5 + i32.store $0 offset=4 + local.get $4 + local.get $7 + i32.store $0 offset=8 + local.get $4 + local.get $6 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.store $0 + loop $for-loop|0 local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store $0 - local.get $3 - i32.load $0 offset=12 - local.get $1 - i32.load $0 offset=12 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store $0 - local.get $2 - i32.const 0 - i32.store $0 + local.get $0 + i32.load $0 offset=12 + i32.lt_s + if + local.get $4 local.get $2 - i32.const 0 - i32.store $0 offset=4 + local.get $0 local.get $2 - i32.const 0 - i32.store $0 offset=8 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 - i32.const 0 - i32.store $0 offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 offset=4 - local.get $2 - local.get $4 - i32.store $0 - local.get $4 - if - local.get $2 - local.get $4 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $2 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $1 + i32.load $0 offset=12 + i32.lt_s + if local.get $4 - i32.store $0 offset=4 local.get $2 local.get $0 - i32.store $0 offset=8 - local.get $2 - local.get $5 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.load $0 offset=12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $1 local.get $2 - i32.store $0 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.load $0 offset=12 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $3 - local.get $0 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 - i32.load $0 offset=12 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $3 - i32.load $0 offset=12 - i32.add - local.get $1 - local.get $0 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 - br $__inlined_func$bindings/esm/arrayFunction + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - br $folding-inner1 end - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $4 return end i32.const 34944 diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index b94398758a..d84e74bc7e 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -88,6 +88,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -100,17 +101,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -122,8 +124,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -266,6 +266,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -285,6 +286,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -370,15 +372,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -405,6 +404,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -580,22 +580,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -620,16 +623,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -725,18 +731,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -760,18 +769,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -781,12 +793,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -934,22 +949,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -994,16 +1012,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1058,10 +1079,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1177,6 +1201,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1186,15 +1211,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1255,17 +1278,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1277,22 +1298,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1365,6 +1384,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1425,8 +1445,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1471,8 +1489,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1522,8 +1538,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1605,6 +1619,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1683,6 +1698,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1698,6 +1714,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1788,16 +1805,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1830,16 +1850,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1853,46 +1876,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1929,10 +1959,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2052,30 +2085,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2146,6 +2185,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2158,6 +2198,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2220,6 +2261,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2341,21 +2383,27 @@ ) (func $bindings/noExportRuntime/takesReturnsBasic (type $i32_=>_i32) (param $a i32) (result i32) global.get $bindings/noExportRuntime/isBasic + return ) (func $bindings/noExportRuntime/returnsString (type $none_=>_i32) (result i32) global.get $bindings/noExportRuntime/isString + return ) (func $bindings/noExportRuntime/returnsBuffer (type $none_=>_i32) (result i32) global.get $bindings/noExportRuntime/isBuffer + return ) (func $bindings/noExportRuntime/returnsTypedArray (type $none_=>_i32) (result i32) global.get $bindings/noExportRuntime/isTypedArray + return ) (func $bindings/noExportRuntime/returnsArrayOfBasic (type $none_=>_i32) (result i32) global.get $bindings/noExportRuntime/isArrayOfBasic + return ) (func $bindings/noExportRuntime/returnsArrayOfArray (type $none_=>_i32) (result i32) global.get $bindings/noExportRuntime/isArrayOfArray + return ) (func $bindings/noExportRuntime/takesNonPlainObject (type $i32_=>_none) (param $obj i32) nop @@ -2467,7 +2515,6 @@ (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -2485,8 +2532,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -2624,6 +2669,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/arraybuffer/ArrayBufferView#constructor (type $i32_i32_i32_=>_i32) (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index f5c0980778..b05126b71f 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1678,7 +1678,14 @@ br $while-continue|0 end end - br $folding-inner0 + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end return end diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 063c75c7d1..297dc6d7ac 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -129,17 +129,21 @@ local.get $a local.get $b i32.add + return ) (func $bindings/esm/plainFunction64 (type $i64_i64_=>_i64) (param $a i64) (param $b i64) (result i64) local.get $a local.get $b i64.add + return ) (func $bindings/esm/getMaxUnsigned32 (type $none_=>_i32) (result i32) global.get $~lib/builtins/u32.MAX_VALUE + return ) (func $bindings/esm/getMaxUnsigned64 (type $none_=>_i64) (result i64) global.get $~lib/builtins/u64.MAX_VALUE + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -150,6 +154,7 @@ i32.const 20 i32.sub call $~lib/rt/common/OBJECT#get:rtSize + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -169,6 +174,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -181,17 +187,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -203,8 +210,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -347,6 +352,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -366,6 +372,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -451,15 +458,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -486,6 +490,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -661,22 +666,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -701,16 +709,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -806,18 +817,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -841,18 +855,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -862,12 +879,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1015,22 +1035,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1075,16 +1098,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1139,10 +1165,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1258,6 +1287,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1267,15 +1297,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1336,17 +1364,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1358,22 +1384,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1446,6 +1470,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1506,8 +1531,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1552,8 +1575,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1603,8 +1624,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1686,6 +1705,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1764,6 +1784,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1779,6 +1800,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1869,16 +1891,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1911,16 +1936,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1934,46 +1962,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2010,10 +2045,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2133,30 +2171,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2227,6 +2271,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2239,6 +2284,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2301,6 +2347,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2309,21 +2356,25 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/string/String.__concat (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String#concat + return ) (func $bindings/esm/stringFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b call $~lib/string/String.__concat + return ) (func $bindings/esm/stringFunctionOptional (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b call $~lib/string/String.__concat + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2421,12 +2472,14 @@ call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u + return ) (func $~lib/typedarray/Float32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u + return ) (func $~lib/arraybuffer/ArrayBufferView#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2454,6 +2507,7 @@ i32.shl i32.add i32.load16_s $0 + return ) (func $~lib/typedarray/Uint64Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index @@ -2501,6 +2555,7 @@ i32.shl i32.add f32.load $0 + return ) (func $~lib/staticarray/StaticArray#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2509,6 +2564,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u + return ) (func $~lib/staticarray/StaticArray#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -2534,6 +2590,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/staticarray/StaticArray#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this @@ -2566,9 +2623,11 @@ ) (func $bindings/esm/staticarrayU16 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $bindings/esm/staticarrayI64 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -2601,6 +2660,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2631,6 +2691,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/arraybuffer/ArrayBufferView#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2684,6 +2745,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -2931,12 +2993,15 @@ (func $bindings/esm/newInternref (type $none_=>_i32) (result i32) i32.const 0 call $bindings/esm/NonPlainObject#constructor + return ) (func $bindings/esm/internrefFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a + return ) (func $bindings/esm/functionFunction (type $i32_=>_i32) (param $fn i32) (result i32) local.get $fn + return ) (func $~lib/rt/itcms/__pin (type $i32_=>_i32) (param $ptr i32) (result i32) (local $obj i32) @@ -2966,6 +3031,7 @@ call $~lib/rt/itcms/Object#linkTo end local.get $ptr + return ) (func $~lib/rt/itcms/__unpin (type $i32_=>_none) (param $ptr i32) (local $obj i32) @@ -3006,8 +3072,6 @@ end ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -3018,8 +3082,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -3033,8 +3095,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -3209,7 +3269,6 @@ (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -3227,8 +3286,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -3470,6 +3527,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $bindings/esm/bufferFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $aByteLength i32) @@ -3515,6 +3573,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $5 + return ) (func $~lib/string/String#concat (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $thisSize i32) @@ -3580,6 +3639,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 + return ) (func $bindings/esm/stringFunctionOptional@varargs (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $2 i32) @@ -3727,10 +3787,8 @@ (func $bindings/esm/typedarrayFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $out i32) (local $i i32) - (local $4 i32) - (local $i|5 i32) - (local $6 i32) - (local $7 i32) + (local $i|4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3756,8 +3814,6 @@ local.get $a call $~lib/typedarray/Int16Array#get:length i32.lt_s - local.set $4 - local.get $4 if local.get $out local.get $i @@ -3774,39 +3830,38 @@ end end i32.const 0 - local.set $i|5 + local.set $i|4 loop $for-loop|1 - local.get $i|5 + local.get $i|4 local.get $b call $~lib/typedarray/Float32Array#get:length i32.lt_s - local.set $6 - local.get $6 if local.get $out local.get $a call $~lib/typedarray/Int16Array#get:length - local.get $i|5 + local.get $i|4 i32.add local.get $b - local.get $i|5 + local.get $i|4 call $~lib/typedarray/Float32Array#__get i64.trunc_sat_f32_u call $~lib/typedarray/Uint64Array#__set - local.get $i|5 + local.get $i|4 i32.const 1 i32.add - local.set $i|5 + local.set $i|4 br $for-loop|1 end end local.get $out - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 + return ) (func $~lib/staticarray/StaticArray#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $outSize i32) @@ -3854,14 +3909,13 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $bindings/esm/staticarrayFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $c i32) (local $i i32) - (local $4 i32) - (local $i|5 i32) - (local $6 i32) - (local $7 i32) + (local $i|4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3887,8 +3941,6 @@ local.get $a call $~lib/staticarray/StaticArray#get:length i32.lt_s - local.set $4 - local.get $4 if local.get $c local.get $i @@ -3904,38 +3956,37 @@ end end i32.const 0 - local.set $i|5 + local.set $i|4 loop $for-loop|1 - local.get $i|5 + local.get $i|4 local.get $b call $~lib/staticarray/StaticArray#get:length i32.lt_s - local.set $6 - local.get $6 if local.get $c local.get $a call $~lib/staticarray/StaticArray#get:length - local.get $i|5 + local.get $i|4 i32.add local.get $b - local.get $i|5 + local.get $i|4 call $~lib/staticarray/StaticArray#__get call $~lib/staticarray/StaticArray#__set - local.get $i|5 + local.get $i|4 i32.const 1 i32.add - local.set $i|5 + local.set $i|4 br $for-loop|1 end end local.get $c - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -4030,10 +4081,8 @@ (func $bindings/esm/arrayFunction (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $c i32) (local $i i32) - (local $4 i32) - (local $i|5 i32) - (local $6 i32) - (local $7 i32) + (local $i|4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4059,8 +4108,6 @@ local.get $a call $~lib/array/Array#get:length i32.lt_s - local.set $4 - local.get $4 if local.get $c local.get $i @@ -4076,38 +4123,37 @@ end end i32.const 0 - local.set $i|5 + local.set $i|4 loop $for-loop|1 - local.get $i|5 + local.get $i|4 local.get $b call $~lib/array/Array#get:length i32.lt_s - local.set $6 - local.get $6 if local.get $c local.get $a call $~lib/array/Array#get:length - local.get $i|5 + local.get $i|4 i32.add local.get $b - local.get $i|5 + local.get $i|4 call $~lib/array/Array#__get call $~lib/array/Array#__set - local.get $i|5 + local.get $i|4 i32.const 1 i32.add - local.set $i|5 + local.set $i|4 br $for-loop|1 end end local.get $c - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -4255,6 +4301,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $bindings/esm/NonPlainObject#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index 4cbdbbe7d2..423f2f93eb 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -2104,12 +2104,12 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $bindings/esm/NonPlainObject - block $~lib/array/Array<~lib/string/String> - block $bindings/esm/PlainObject + block $folding-inner0 + block $invalid + block $bindings/esm/NonPlainObject + block $~lib/array/Array<~lib/string/String> + block $bindings/esm/PlainObject + block $~lib/array/Array block $~lib/staticarray/StaticArray block $~lib/staticarray/StaticArray block $~lib/staticarray/StaticArray @@ -2121,7 +2121,7 @@ i32.const 8 i32.sub i32.load $0 - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $~lib/function/Function<%28%29=>void> $folding-inner0 $folding-inner0 $folding-inner0 $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $folding-inner1 $bindings/esm/PlainObject $folding-inner0 $~lib/array/Array<~lib/string/String> $bindings/esm/NonPlainObject $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $~lib/function/Function<%28%29=>void> $folding-inner0 $folding-inner0 $folding-inner0 $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $~lib/array/Array $bindings/esm/PlainObject $folding-inner0 $~lib/array/Array<~lib/string/String> $bindings/esm/NonPlainObject $invalid end return end @@ -2145,21 +2145,7 @@ return end local.get $0 - i32.load $0 offset=56 - local.tee $1 - if - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.load $0 offset=60 - local.tee $1 - if - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.load $0 offset=64 + i32.load $0 local.tee $0 if local.get $0 @@ -2168,47 +2154,68 @@ return end local.get $0 - i32.load $0 offset=4 + i32.load $0 offset=56 local.tee $1 + if + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end local.get $0 - i32.load $0 offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 + i32.load $0 offset=60 + local.tee $1 + if + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.load $0 offset=64 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + local.get $0 + i32.load $0 offset=4 + local.tee $1 + local.get $0 + i32.load $0 offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if local.get $1 - local.get $3 - i32.lt_u + i32.load $0 + local.tee $3 if - local.get $1 - i32.load $0 - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - br $folding-inner1 + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit end return end - unreachable - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + return end - return + unreachable end local.get $0 i32.load $0 @@ -2307,6 +2314,239 @@ i32.const 1648 global.set $~lib/rt/itcms/fromSpace ) + (func $bindings/esm/typedarrayFunction (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + local.get $1 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.add + local.set $3 + local.get $6 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store $0 + local.get $2 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store $0 + end + local.get $2 + i32.const 0 + i32.store $0 + local.get $2 + i32.const 0 + i32.store $0 offset=4 + local.get $2 + i32.const 0 + i32.store $0 offset=8 + local.get $3 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store $0 offset=4 + local.get $2 + local.tee $3 + local.get $7 + i32.store $0 + local.get $7 + if + local.get $3 + local.get $7 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $7 + i32.store $0 offset=4 + local.get $3 + local.get $4 + i32.store $0 offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $3 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $3 + i32.store $0 + i32.const 0 + local.set $2 + loop $for-loop|0 + local.get $2 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + i32.lt_s + if + local.get $2 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $2 + local.get $0 + i32.load $0 offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i64.load16_s $0 + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $1 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.lt_s + if + local.get $2 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + i32.add + local.set $4 + local.get $2 + local.get $1 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + local.get $1 + i32.load $0 offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load $0 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + i32.const 34944 + i32.const 34992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $export:bindings/esm/bufferFunction (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -2518,259 +2758,37 @@ ) (func $export:bindings/esm/typedarrayFunction (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store $0 - local.get $2 - local.get $1 - i32.store $0 offset=4 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store $0 - local.get $4 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) - local.get $0 - local.tee $2 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - local.get $1 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.add - local.set $5 - local.get $4 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store $0 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - end - local.get $0 - i32.const 0 - i32.store $0 - local.get $0 - i32.const 0 - i32.store $0 offset=4 - local.get $0 - i32.const 0 - i32.store $0 offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1248 - i32.const 1296 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store $0 offset=4 - local.get $0 - local.get $5 - i32.store $0 - local.get $5 - if - local.get $0 - local.get $5 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $5 - i32.store $0 offset=4 - local.get $0 - local.get $6 - i32.store $0 offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $0 - i32.store $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor - end - br $folding-inner1 - end - local.tee $0 - i32.store $0 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - i32.lt_s - if - local.get $3 - local.get $2 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $3 - local.get $2 - i32.load $0 offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i64.load16_s $0 - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $1 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.lt_s - if - local.get $3 - local.get $2 - i32.load $0 offset=8 - i32.const 1 - i32.shr_u - i32.add - local.set $4 - local.get $3 - local.get $1 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $4 - local.get $1 - i32.load $0 offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load $0 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + if + i32.const 34944 + i32.const 34992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 34944 - i32.const 34992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store $0 + local.get $2 + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + call $bindings/esm/typedarrayFunction + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $export:bindings/esm/staticarrayFunction (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2969,6 +2987,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2979,174 +2998,162 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store $0 - local.get $2 + local.get $3 local.get $1 i32.store $0 offset=4 - block $__inlined_func$bindings/esm/arrayFunction (result i32) - local.get $0 - local.set $3 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=12 + local.get $1 + i32.load $0 offset=12 + i32.add + local.set $6 + local.get $3 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2148 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $4 + i64.const 0 + i64.store $0 + local.get $4 + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 + i32.const 0 + i32.store $0 + local.get $4 + i32.const 0 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.store $0 offset=8 + local.get $4 + i32.const 0 + i32.store $0 offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store $0 offset=4 + local.get $4 + local.get $5 + i32.store $0 + local.get $5 + if + local.get $4 + local.get $5 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $5 + i32.store $0 offset=4 + local.get $4 + local.get $7 + i32.store $0 offset=8 + local.get $4 + local.get $6 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.store $0 + loop $for-loop|0 local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store $0 - local.get $3 - i32.load $0 offset=12 - local.get $1 - i32.load $0 offset=12 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2148 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store $0 - local.get $2 - i32.const 0 - i32.store $0 + local.get $0 + i32.load $0 offset=12 + i32.lt_s + if + local.get $4 local.get $2 - i32.const 0 - i32.store $0 offset=4 + local.get $0 local.get $2 - i32.const 0 - i32.store $0 offset=8 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 - i32.const 0 - i32.store $0 offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 offset=4 - local.get $2 - local.get $4 - i32.store $0 - local.get $4 - if - local.get $2 - local.get $4 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $2 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $1 + i32.load $0 offset=12 + i32.lt_s + if local.get $4 - i32.store $0 offset=4 local.get $2 local.get $0 - i32.store $0 offset=8 - local.get $2 - local.get $5 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.load $0 offset=12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $1 local.get $2 - i32.store $0 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.load $0 offset=12 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $3 - local.get $0 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 - i32.load $0 offset=12 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $3 - i32.load $0 offset=12 - i32.add - local.get $1 - local.get $0 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 - br $__inlined_func$bindings/esm/arrayFunction + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - br $folding-inner1 end - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $4 return end i32.const 34944 diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index 9986eafa4e..696a370a97 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -97,13 +97,16 @@ local.get $a local.get $b i32.add + return ) (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:index (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 + return ) (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:name (type $i32_=>_i32) (param $this i32) (result i32) i32.const 32 + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -116,12 +119,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -192,8 +195,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -222,6 +223,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -264,12 +266,15 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:length (type $i32_=>_i32) (param $this i32) (result i32) i32.const 2 + return ) (func $~lib/function/Function<%28i32%2Ci32%29=>i32>#toString (type $i32_=>_i32) (param $this i32) (result i32) i32.const 176 + return ) (func $~lib/atomics/Atomics.isLockFree (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -289,6 +294,7 @@ i32.const 4 i32.eq end + return ) (func $start:builtins~anonymous|1 (type $none_=>_none) nop @@ -316,6 +322,7 @@ local.get $6 i32.gt_s select + return ) (func $builtins/min3 (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $c i32) (result i32) (local $3 i32) @@ -337,6 +344,7 @@ local.get $6 i32.lt_s select + return ) (func $builtins/rotl3 (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $c i32) (result i32) (local $3 i32) @@ -375,6 +383,7 @@ i32.shr_u i32.or i32.extend8_s + return ) (func $builtins/rotr3 (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $c i32) (result i32) (local $3 i32) @@ -413,6 +422,7 @@ i32.shl i32.or i32.extend8_s + return ) (func $builtins/test (type $none_=>_none) nop diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index d7165bf634..28a2dc2120 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -17,15 +17,19 @@ (start $~start) (func $call-inferred/foo (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $call-inferred/foo (type $f64_=>_f64) (param $a f64) (result f64) local.get $a + return ) (func $call-inferred/foo (type $f32_=>_f32) (param $a f32) (result f32) local.get $a + return ) (func $call-inferred/bar (type $f32_=>_f32) (param $a f32) (result f32) local.get $a + return ) (func $call-inferred/bar@varargs (type $f32_=>_f32) (param $a f32) (result f32) block $1of1 diff --git a/tests/compiler/call-optional.debug.wat b/tests/compiler/call-optional.debug.wat index aec300a422..2fb1ba0ebc 100644 --- a/tests/compiler/call-optional.debug.wat +++ b/tests/compiler/call-optional.debug.wat @@ -21,6 +21,7 @@ i32.add local.get $c i32.add + return ) (func $call-optional/opt@varargs (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $c i32) (result i32) block $2of2 diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index c66a1f3995..25d32140c6 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -64,6 +64,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -76,17 +77,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -98,8 +100,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -242,6 +242,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -261,6 +262,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -346,15 +348,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -381,6 +380,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -556,22 +556,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -596,16 +599,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -701,18 +707,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -736,18 +745,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -757,12 +769,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -910,22 +925,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -970,16 +988,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1034,10 +1055,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1153,6 +1177,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1162,15 +1187,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1231,17 +1254,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1253,22 +1274,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1341,6 +1360,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1401,8 +1421,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1447,8 +1465,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1498,8 +1514,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1581,6 +1595,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1659,6 +1674,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1674,6 +1690,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1764,16 +1781,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1806,16 +1826,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1829,46 +1852,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1905,10 +1935,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2028,30 +2061,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2122,6 +2161,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2134,6 +2174,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2196,6 +2237,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $call-super/A#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index 72e3bdae57..c9646d4ea5 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -80,6 +80,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34316 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2094,146 +2226,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34316 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load $0 - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1492 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/cast.debug.wat b/tests/compiler/cast.debug.wat index 36fab1e75c..32187a40de 100644 --- a/tests/compiler/cast.debug.wat +++ b/tests/compiler/cast.debug.wat @@ -17,12 +17,14 @@ local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -30,6 +32,7 @@ i32.extend8_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -37,6 +40,7 @@ i32.extend8_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -44,6 +48,7 @@ i32.extend8_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -51,6 +56,7 @@ i32.extend8_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -59,6 +65,7 @@ i64.extend_i32_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -67,24 +74,28 @@ i64.extend_i32_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -93,6 +104,7 @@ i32.and local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -101,6 +113,7 @@ i32.and local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -109,6 +122,7 @@ i32.and local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -117,6 +131,7 @@ i32.and local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -126,6 +141,7 @@ i64.extend_i32_u local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -135,36 +151,42 @@ i64.extend_i32_u local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -172,6 +194,7 @@ i32.extend16_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -179,6 +202,7 @@ i32.extend16_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -187,6 +211,7 @@ i64.extend_i32_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -195,36 +220,42 @@ i64.extend_i32_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -233,6 +264,7 @@ i32.and local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -241,6 +273,7 @@ i32.and local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -250,6 +283,7 @@ i64.extend_i32_u local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -259,48 +293,56 @@ i64.extend_i32_u local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -308,6 +350,7 @@ i64.extend_i32_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -315,48 +358,56 @@ i64.extend_i32_s local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -364,6 +415,7 @@ i64.extend_i32_u local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -371,12 +423,14 @@ i64.extend_i32_u local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -384,6 +438,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -391,6 +446,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -398,6 +454,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -405,6 +462,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -412,6 +470,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -419,18 +478,21 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i64) (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i64) (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -439,6 +501,7 @@ i64.ne local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -446,6 +509,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -453,6 +517,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -460,6 +525,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -467,6 +533,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -474,6 +541,7 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -481,18 +549,21 @@ i32.wrap_i64 local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i64) (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i64) (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y + return ) (func $cast/test (type $i64_=>_i32) (param $x i64) (result i32) (local $y i32) @@ -501,6 +572,7 @@ i64.ne local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -509,6 +581,7 @@ i32.ne local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -517,6 +590,7 @@ i32.ne local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -525,6 +599,7 @@ i32.ne local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -533,6 +608,7 @@ i32.ne local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -541,6 +617,7 @@ i32.ne local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) @@ -549,6 +626,7 @@ i32.ne local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -558,6 +636,7 @@ i64.extend_i32_u local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i64) (param $x i32) (result i64) (local $y i64) @@ -567,12 +646,14 @@ i64.extend_i32_u local.set $y local.get $y + return ) (func $cast/test (type $i32_=>_i32) (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y + return ) (func $start:cast (type $none_=>_none) i32.const 0 diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index 517c88e895..7749eb9079 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -67,6 +67,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -79,17 +80,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -101,8 +103,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -245,6 +245,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -264,6 +265,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -349,15 +351,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -384,6 +383,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -559,22 +559,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -599,16 +602,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -704,18 +710,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -739,18 +748,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -760,12 +772,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -913,22 +928,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -973,16 +991,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1037,10 +1058,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1156,6 +1180,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1165,15 +1190,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1234,17 +1257,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1256,22 +1277,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1344,6 +1363,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1404,8 +1424,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1450,8 +1468,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1501,8 +1517,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1584,6 +1598,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1662,6 +1677,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1677,6 +1693,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1767,16 +1784,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1809,16 +1829,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1832,46 +1855,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1908,10 +1938,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2031,30 +2064,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2125,6 +2164,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2137,6 +2177,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2199,18 +2240,23 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $class-implements/A#foo (type $i32_=>_i32) (param $this i32) (result i32) i32.const 1 + return ) (func $class-implements/C#foo (type $i32_=>_i32) (param $this i32) (result i32) i32.const 2 + return ) (func $class-implements/D#foo (type $i32_=>_i32) (param $this i32) (result i32) i32.const 3 + return ) (func $class-implements/F#foo (type $i32_=>_i32) (param $this i32) (result i32) i32.const 4 + return ) (func $class-implements/I#foo (type $i32_=>_i32) (param $this i32) (result i32) unreachable @@ -2260,6 +2306,7 @@ (func $class-implements/B2#get:foo (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $class-implements/B2#get:_foo + return ) (func $class-implements/B3#set:_foo2 (type $i32_i32_=>_none) (param $this i32) (param $_foo2 i32) local.get $this @@ -2273,6 +2320,7 @@ (func $class-implements/B3#get:foo (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $class-implements/B3#get:_foo2 + return ) (func $class-implements/B4#set:_foo2 (type $i32_i32_=>_none) (param $this i32) (param $_foo2 i32) local.get $this @@ -2286,6 +2334,7 @@ (func $class-implements/B4#get:foo (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $class-implements/B4#get:_foo2 + return ) (func $class-implements/B3#set:foo (type $i32_i32_=>_none) (param $this i32) (param $foo i32) local.get $this diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index b31764f595..35d8afc22e 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -1,10 +1,10 @@ (module (type $none_=>_none (func_subtype func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -129,6 +129,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34352 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1504 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1508 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -3270,146 +3402,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34352 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1504 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1508 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 457f08e59a..a0737ae01e 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -73,6 +73,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -85,17 +86,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -107,8 +109,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -251,6 +251,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -270,6 +271,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -355,15 +357,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -390,6 +389,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -565,22 +565,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -605,16 +608,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -710,18 +716,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -745,18 +754,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -766,12 +778,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -919,22 +934,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -979,16 +997,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1043,10 +1064,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1162,6 +1186,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1171,15 +1196,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1240,17 +1263,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1262,22 +1283,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1350,6 +1369,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1410,8 +1430,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1456,8 +1474,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1507,8 +1523,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1590,6 +1604,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1668,6 +1683,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1683,6 +1699,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1773,16 +1790,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1815,16 +1835,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1838,46 +1861,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1914,10 +1944,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2037,30 +2070,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2131,6 +2170,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2143,6 +2183,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2205,9 +2246,11 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $class-overloading-cast/A#foo (type $i32_i32_=>_i32) (param $this i32) (param $a i32) (result i32) i32.const 432 + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2220,12 +2263,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2296,8 +2339,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2326,6 +2367,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2368,24 +2410,31 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $class-overloading-cast/B#foo (type $i32_i32_=>_i32) (param $this i32) (param $a i32) (result i32) i32.const 464 + return ) (func $class-overloading-cast/A#foo (type $i32_f64_=>_i32) (param $this i32) (param $a f64) (result i32) i32.const 432 + return ) (func $class-overloading-cast/A<~lib/string/String>#foo (type $i32_i32_=>_i32) (param $this i32) (param $a i32) (result i32) i32.const 432 + return ) (func $class-overloading-cast/D#bar (type $i32_f32_=>_i32) (param $this i32) (param $a f32) (result i32) i32.const 608 + return ) (func $class-overloading-cast/B#foo (type $i32_i32_=>_i32) (param $this i32) (param $a i32) (result i32) i32.const 464 + return ) (func $class-overloading-cast/B#foo (type $i32_f64_=>_i32) (param $this i32) (param $a f64) (result i32) i32.const 464 + return ) (func $class-overloading-cast/A#foo@override (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index a0b882c6be..e0f87c6381 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -117,6 +117,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34476 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1648 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1652 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2025,146 +2157,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34476 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1648 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1652 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 5b29650d57..f862a7f2b3 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -77,6 +77,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -89,17 +90,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -111,8 +113,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -255,6 +255,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -274,6 +275,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -359,15 +361,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -394,6 +393,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -569,22 +569,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -609,16 +612,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -714,18 +720,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -749,18 +758,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -770,12 +782,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -923,22 +938,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -983,16 +1001,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1047,10 +1068,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1166,6 +1190,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1175,15 +1200,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1244,17 +1267,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1266,22 +1287,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1354,6 +1373,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1414,8 +1434,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1460,8 +1478,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1511,8 +1527,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1594,6 +1608,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1672,6 +1687,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1687,6 +1703,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1777,16 +1794,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1819,16 +1839,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1842,46 +1865,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1918,10 +1948,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2041,30 +2074,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2135,6 +2174,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2147,6 +2187,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2209,6 +2250,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $class-overloading/A#a (type $i32_i32_=>_none) (param $this i32) (param $a i32) i32.const 464 @@ -2225,12 +2267,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2301,8 +2343,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2331,6 +2371,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2373,6 +2414,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $class-overloading/A#b (type $i32_i32_=>_none) (param $this i32) (param $b i32) i32.const 464 @@ -2382,6 +2424,7 @@ i32.const 464 global.set $class-overloading/which i32.const 0 + return ) (func $class-overloading/A#set:c (type $i32_i32_=>_none) (param $this i32) (param $c i32) i32.const 464 @@ -2399,6 +2442,7 @@ i32.const 592 global.set $class-overloading/which i32.const 0 + return ) (func $class-overloading/C#set:c (type $i32_i32_=>_none) (param $this i32) (param $c i32) i32.const 592 @@ -2431,11 +2475,13 @@ i32.const 496 global.set $class-overloading/which i32.const 0 + return ) (func $class-overloading/F#get:c (type $i32_=>_i32) (param $this i32) (result i32) i32.const 624 global.set $class-overloading/which i32.const 0 + return ) (func $class-overloading/B#set:c (type $i32_i32_=>_none) (param $this i32) (param $c i32) i32.const 496 @@ -2464,9 +2510,11 @@ (func $class-overloading/A1#bar (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $class-overloading/A1#baz@override + return ) (func $class-overloading/B1#baz (type $i32_=>_i32) (param $this i32) (result i32) i32.const 3 + return ) (func $class-overloading/A#a@override (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) @@ -3737,6 +3785,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index 42cfafa4fc..bfc16e68cd 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -139,6 +139,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34636 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1792 + i32.load $0 + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1796 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -3043,146 +3175,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34636 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1792 - i32.load $0 - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1796 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/class-static-function.debug.wat b/tests/compiler/class-static-function.debug.wat index 2c45b56539..07adf2db2e 100644 --- a/tests/compiler/class-static-function.debug.wat +++ b/tests/compiler/class-static-function.debug.wat @@ -17,6 +17,7 @@ (start $~start) (func $class-static-function/Example.staticFunc (type $none_=>_i32) (result i32) i32.const 42 + return ) (func $class-static-function/call (type $i32_=>_i32) (param $func i32) (result i32) i32.const 0 @@ -24,6 +25,7 @@ local.get $func i32.load $0 call_indirect $0 (type $none_=>_i32) + return ) (func $~start (type $none_=>_none) call $start:class-static-function diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index 316dd550b4..d746667d18 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -55,6 +55,7 @@ i32.add global.get $class/Animal.ONE i32.add + return ) (func $class/Animal.sub (type $f32_f32_=>_f32) (param $a f32) (param $b f32) (result f32) local.get $a @@ -63,6 +64,7 @@ global.get $class/Animal.ONE f32.convert_i32_s f32.add + return ) (func $start:class (type $none_=>_none) i32.const 4 @@ -86,6 +88,7 @@ i32.add global.get $class/Animal.ONE i32.add + return ) (func $class/Animal#instanceSub (type $i32_f32_f32_=>_f32) (param $this i32) (param $a f32) (param $b f32) (result f32) local.get $a @@ -94,6 +97,7 @@ global.get $class/Animal.ONE f32.convert_i32_s f32.add + return ) (func $class/Animal#get:one (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -166,6 +170,7 @@ local.get $ptr local.set $cls local.get $cls + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -185,6 +190,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -197,17 +203,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -219,8 +226,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -363,6 +368,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -382,6 +388,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -467,15 +474,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -502,6 +506,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -677,22 +682,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -717,16 +725,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -822,18 +833,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -857,18 +871,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -878,12 +895,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1031,22 +1051,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1091,16 +1114,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1155,10 +1181,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1274,6 +1303,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1283,15 +1313,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1352,17 +1380,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1374,22 +1400,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1462,6 +1486,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1522,8 +1547,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1568,8 +1591,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1619,8 +1640,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1702,6 +1721,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1780,6 +1800,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1795,6 +1816,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1885,16 +1907,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1927,16 +1952,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1950,46 +1978,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2026,10 +2061,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2149,30 +2187,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2243,6 +2287,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2255,6 +2300,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2317,6 +2363,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) diff --git a/tests/compiler/comma.debug.wat b/tests/compiler/comma.debug.wat index 9cc2736278..b1b42f6ebb 100644 --- a/tests/compiler/comma.debug.wat +++ b/tests/compiler/comma.debug.wat @@ -16,7 +16,6 @@ (func $start:comma (type $none_=>_none) (local $0 i32) (local $c i32) - (local $2 i32) global.get $comma/a local.tee $0 i32.const 1 @@ -152,8 +151,6 @@ local.get $c global.get $comma/a i32.lt_s - local.set $2 - local.get $2 if nop global.get $comma/a diff --git a/tests/compiler/const-folding.debug.wat b/tests/compiler/const-folding.debug.wat index 72062166eb..38e6e185cd 100644 --- a/tests/compiler/const-folding.debug.wat +++ b/tests/compiler/const-folding.debug.wat @@ -65,6 +65,7 @@ local.get $rlo local.get $rhi i64.add + return ) (func $~start (type $none_=>_none) call $start:const-folding diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 4ee568cdc2..e1edb45a54 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -72,6 +72,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -84,17 +85,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -106,8 +108,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -250,6 +250,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -269,6 +270,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -354,15 +356,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -389,6 +388,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -564,22 +564,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -604,16 +607,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -709,18 +715,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -744,18 +753,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -765,12 +777,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -918,22 +933,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -978,16 +996,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1042,10 +1063,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1161,6 +1185,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1170,15 +1195,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1239,17 +1262,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1261,22 +1282,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1349,6 +1368,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1409,8 +1429,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1455,8 +1473,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1506,8 +1522,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1589,6 +1603,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1667,6 +1682,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1682,6 +1698,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1772,16 +1789,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1814,16 +1834,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1837,46 +1860,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1913,10 +1943,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2036,30 +2069,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2130,6 +2169,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2142,6 +2182,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2204,6 +2245,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $constructor/EmptyCtorWithFieldInit#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this @@ -2232,6 +2274,7 @@ ) (func $constructor/CtorReturns#constructor (type $i32_=>_i32) (param $this i32) (result i32) i32.const 0 + return ) (func $constructor/CtorFieldInitOrder#get:a (type $i32_=>_i32) (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index 95925bef87..b3b8d87587 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -143,6 +143,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34320 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1957,146 +2089,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34320 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1492 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/continue.debug.wat b/tests/compiler/continue.debug.wat index d6028b73f9..f9b74ce81d 100644 --- a/tests/compiler/continue.debug.wat +++ b/tests/compiler/continue.debug.wat @@ -10,15 +10,12 @@ (export "memory" (memory $0)) (func $continue/testInherit (type $i32_=>_none) (param $b i32) (local $i i32) - (local $2 i32) i32.const 0 local.set $i loop $for-loop|0 local.get $i i32.const 10 i32.lt_s - local.set $2 - local.get $2 if block $for-continue|0 local.get $b diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index 2b691d9145..e9fa720427 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -266,8 +266,7 @@ return end i32.const 1 - drop - br $do-loop|0 + br_if $do-loop|0 end unreachable ) @@ -281,7 +280,7 @@ i32.add local.set $i i32.const 0 - drop + br_if $do-loop|0 end local.get $i i32.const 1 @@ -469,6 +468,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -481,17 +481,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -503,8 +504,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -647,6 +646,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -666,6 +666,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -751,15 +752,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -786,6 +784,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -961,22 +960,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -1001,16 +1003,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -1106,18 +1111,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1141,18 +1149,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1162,12 +1173,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1315,22 +1329,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1375,16 +1392,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1439,10 +1459,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1558,6 +1581,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1567,15 +1591,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1636,17 +1658,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1658,22 +1678,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1746,6 +1764,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1806,8 +1825,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1852,8 +1869,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1903,8 +1918,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1986,6 +1999,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -2064,6 +2078,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -2079,6 +2094,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -2169,16 +2185,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2211,16 +2230,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2234,46 +2256,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2310,10 +2339,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2433,30 +2465,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2527,6 +2565,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2539,6 +2578,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2601,6 +2641,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $do/testRef (type $none_=>_none) (local $i i32) @@ -2673,6 +2714,7 @@ (func $do/getRef (type $none_=>_i32) (result i32) i32.const 0 call $do/Ref#constructor + return ) (func $do/testRefAutorelease (type $none_=>_none) (local $i i32) @@ -2740,8 +2782,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2752,8 +2792,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2767,8 +2805,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index bfc0b3d03f..f802c61a5f 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -79,6 +79,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34264 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1472 + i32.load $0 + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1476 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1265,14 +1397,14 @@ end i32.const 10 local.set $0 - loop $do-loop|01 + loop $do-loop|00 local.get $0 local.tee $1 i32.const 1 i32.sub local.set $0 local.get $1 - br_if $do-loop|01 + br_if $do-loop|00 end local.get $0 i32.const -1 @@ -1289,7 +1421,7 @@ local.set $0 i32.const 0 local.set $1 - loop $do-loop|03 + loop $do-loop|01 local.get $0 i32.const 1 i32.sub @@ -1330,7 +1462,7 @@ unreachable end local.get $0 - br_if $do-loop|03 + br_if $do-loop|01 end local.get $0 if @@ -1365,14 +1497,14 @@ end i32.const 0 local.set $0 - loop $do-loop|05 + loop $do-loop|02 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $do-loop|05 + br_if $do-loop|02 end local.get $0 i32.const 10 @@ -1387,14 +1519,14 @@ end i32.const 0 local.set $0 - loop $do-loop|07 + loop $do-loop|03 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $do-loop|07 + br_if $do-loop|03 end local.get $0 i32.const 10 @@ -1409,7 +1541,7 @@ end i32.const 0 local.set $0 - loop $do-loop|015 + loop $do-loop|09 local.get $0 i32.const 1 i32.add @@ -1419,7 +1551,7 @@ i32.const 0 local.get $0 select - br_if $do-loop|015 + br_if $do-loop|09 end local.get $0 i32.const 10 @@ -1436,7 +1568,7 @@ local.set $0 i32.const 0 local.set $1 - loop $do-loop|017 + loop $do-loop|011 local.get $0 i32.const 1 i32.add @@ -1444,7 +1576,7 @@ i32.const 10 i32.ne if - loop $do-loop|120 + loop $do-loop|113 local.get $1 i32.const 1 i32.add @@ -1454,10 +1586,10 @@ i32.const 0 local.get $1 select - br_if $do-loop|120 + br_if $do-loop|113 end local.get $0 - br_if $do-loop|017 + br_if $do-loop|011 end end local.get $0 @@ -1775,146 +1907,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34264 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1472 - i32.load $0 - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1476 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 64cf6a7d1b..5d53fde51c 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -67,6 +67,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -79,17 +80,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -101,8 +103,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -245,6 +245,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -264,6 +265,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -349,15 +351,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -384,6 +383,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -559,22 +559,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -599,16 +602,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -704,18 +710,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -739,18 +748,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -760,12 +772,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -913,22 +928,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -973,16 +991,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1037,10 +1058,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1156,6 +1180,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1165,15 +1190,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1234,17 +1257,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1256,22 +1277,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1344,6 +1363,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1404,8 +1424,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1450,8 +1468,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1501,8 +1517,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1584,6 +1598,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1662,6 +1677,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1677,6 +1693,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1767,16 +1784,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1809,16 +1829,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1832,46 +1855,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1908,10 +1938,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2031,30 +2064,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2125,6 +2164,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2137,6 +2177,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2199,6 +2240,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $duplicate-fields/B#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index 4a46a4e8fd..15f4832cef 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -66,6 +66,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -78,17 +79,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -100,8 +102,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -244,6 +244,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -263,6 +264,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -348,15 +350,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -383,6 +382,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -558,22 +558,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -598,16 +601,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -703,18 +709,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -738,18 +747,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -759,12 +771,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -912,22 +927,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -972,16 +990,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1036,10 +1057,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1155,6 +1179,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1164,15 +1189,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1233,17 +1256,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1255,22 +1276,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1343,6 +1362,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1403,8 +1423,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1449,8 +1467,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1500,8 +1516,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1583,6 +1597,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1661,6 +1676,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1676,6 +1692,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1766,16 +1783,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1808,16 +1828,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1831,46 +1854,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1907,10 +1937,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2030,30 +2063,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2124,6 +2163,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2136,6 +2176,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2198,6 +2239,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__pin (type $i32_=>_i32) (param $ptr i32) (result i32) (local $obj i32) @@ -2227,6 +2269,7 @@ call $~lib/rt/itcms/Object#linkTo end local.get $ptr + return ) (func $~lib/rt/itcms/__unpin (type $i32_=>_none) (param $ptr i32) (local $obj i32) @@ -2267,8 +2310,6 @@ end ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2279,8 +2320,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2294,8 +2333,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index 28a68b98f5..3235e5becc 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -59,6 +59,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -71,17 +72,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -93,8 +95,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -237,6 +237,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -256,6 +257,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -341,15 +343,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -376,6 +375,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -551,22 +551,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -591,16 +594,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -696,18 +702,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -731,18 +740,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -752,12 +764,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -905,22 +920,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -965,16 +983,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1029,10 +1050,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1148,6 +1172,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1157,15 +1182,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1226,17 +1249,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1248,22 +1269,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1336,6 +1355,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1396,8 +1416,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1442,8 +1460,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1493,8 +1509,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1576,6 +1590,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1654,6 +1669,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1669,6 +1685,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1759,16 +1776,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1801,16 +1821,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1824,46 +1847,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1900,10 +1930,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2023,30 +2056,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2117,6 +2156,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2129,6 +2169,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2191,6 +2232,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $start:empty-new (type $none_=>_none) memory.size $0 diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index c9c483a759..9f2a508fda 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -76,6 +76,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34228 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1440 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1444 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1286,146 +1418,18 @@ call $~lib/rt/itcms/__new ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34228 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1440 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1444 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/enum.debug.wat b/tests/compiler/enum.debug.wat index 9b5f70b8bc..e8e66897a6 100644 --- a/tests/compiler/enum.debug.wat +++ b/tests/compiler/enum.debug.wat @@ -70,6 +70,7 @@ (start $~start) (func $enum/getZero (type $none_=>_i32) (result i32) i32.const 0 + return ) (func $start:enum (type $none_=>_none) call $enum/getZero diff --git a/tests/compiler/export.debug.wat b/tests/compiler/export.debug.wat index 3674d7336c..bc2db64d3b 100644 --- a/tests/compiler/export.debug.wat +++ b/tests/compiler/export.debug.wat @@ -20,15 +20,18 @@ local.get $a local.get $b i32.add + return ) (func $export/sub (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.sub + return ) (func $export/mul (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.mul + return ) ) diff --git a/tests/compiler/exports.debug.wat b/tests/compiler/exports.debug.wat index 411db43db3..f5fc82cb23 100644 --- a/tests/compiler/exports.debug.wat +++ b/tests/compiler/exports.debug.wat @@ -29,11 +29,13 @@ local.get $a local.get $b i32.add + return ) (func $exports/subOpt (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.sub + return ) (func $exports/subOpt@varargs (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) block $1of1 @@ -57,6 +59,7 @@ local.get $a local.get $b i32.mul + return ) (func $~setArgumentsLength (type $i32_=>_none) (param $0 i32) local.get $0 diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 6e6a5ee404..af057762b3 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -62,16 +62,19 @@ local.get $a local.get $b i32.add + return ) (func $export/mul (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.mul + return ) (func $exports/add (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add + return ) (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $doors i32) local.get $this @@ -96,6 +99,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -108,17 +112,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -130,8 +135,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -274,6 +277,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -293,6 +297,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -378,15 +383,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -413,6 +415,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -588,22 +591,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -628,16 +634,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -733,18 +742,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -768,18 +780,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -789,12 +804,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -942,22 +960,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1002,16 +1023,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1066,10 +1090,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1185,6 +1212,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1194,15 +1222,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1263,17 +1289,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1285,22 +1309,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1373,6 +1395,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1433,8 +1456,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1479,8 +1500,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1530,8 +1549,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1613,6 +1630,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1691,6 +1709,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1706,6 +1725,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1796,16 +1816,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1838,16 +1861,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1861,46 +1887,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1937,10 +1970,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2060,30 +2096,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2154,6 +2196,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2166,6 +2209,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2228,6 +2272,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $exports/Car#get:doors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2236,6 +2281,7 @@ (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $exports/Car#get:doors + return ) (func $start:exportstar-rereexport (type $none_=>_none) call $start:rereexport diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index 883c616253..89e30b216f 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) @@ -110,6 +110,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34328 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1536 + i32.load $0 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1540 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1460,146 +1592,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34328 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1536 - i32.load $0 - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1540 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/exportstar.debug.wat b/tests/compiler/exportstar.debug.wat index 3674d7336c..bc2db64d3b 100644 --- a/tests/compiler/exportstar.debug.wat +++ b/tests/compiler/exportstar.debug.wat @@ -20,15 +20,18 @@ local.get $a local.get $b i32.add + return ) (func $export/sub (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.sub + return ) (func $export/mul (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.mul + return ) ) diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index dd7f256cc2..6f262908bd 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -69,6 +69,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -81,17 +82,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -103,8 +105,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -247,6 +247,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -266,6 +267,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -351,15 +353,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -386,6 +385,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -561,22 +561,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -601,16 +604,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -706,18 +712,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -741,18 +750,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -762,12 +774,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -915,22 +930,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -975,16 +993,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1039,10 +1060,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1158,6 +1182,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1167,15 +1192,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1236,17 +1259,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1258,22 +1279,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1346,6 +1365,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1406,8 +1426,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1452,8 +1470,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1503,8 +1519,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1586,6 +1600,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1664,6 +1679,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1679,6 +1695,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1769,16 +1786,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1811,16 +1831,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1834,46 +1857,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1910,10 +1940,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2033,30 +2066,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2127,6 +2166,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2139,6 +2179,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2201,6 +2242,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $extends-baseaggregate/A1#set:padding0 (type $i32_f64_=>_none) (param $this i32) (param $padding0 f64) local.get $this @@ -2349,6 +2391,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -2488,6 +2531,7 @@ local.get $len call $~lib/array/Array#set:length_ local.get $len + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -2594,7 +2638,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -2612,8 +2655,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -2651,7 +2692,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -2669,8 +2709,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index b8fe1b7508..cd17157ecc 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1529,17 +1529,17 @@ i32.const 2 i32.shl i32.add - local.set $3 + local.set $2 loop $while-continue|0 local.get $1 - local.get $3 + local.get $2 i32.lt_u if local.get $1 i32.load $0 - local.tee $2 + local.tee $3 if - local.get $2 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $1 diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index cc640666cb..51c7fd7c1f 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -59,6 +59,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -71,17 +72,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -93,8 +95,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -237,6 +237,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -256,6 +257,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -341,15 +343,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -376,6 +375,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -551,22 +551,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -591,16 +594,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -696,18 +702,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -731,18 +740,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -752,12 +764,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -905,22 +920,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -965,16 +983,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1029,10 +1050,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1148,6 +1172,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1157,15 +1182,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1226,17 +1249,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1248,22 +1269,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1336,6 +1355,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1396,8 +1416,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1442,8 +1460,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1493,8 +1509,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1576,6 +1590,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1654,6 +1669,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1669,6 +1685,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1759,16 +1776,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1801,16 +1821,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1824,46 +1847,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1900,10 +1930,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2023,30 +2056,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2117,6 +2156,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2129,6 +2169,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2191,6 +2232,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index a335987d83..87553b4474 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -77,6 +77,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34236 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1440 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1444 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1526,9 +1658,6 @@ end ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 @@ -1540,132 +1669,7 @@ i32.eq if local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load $0 offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load $0 offset=8 - i32.eqz - local.get $0 - i32.const 34236 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $0 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load $0 offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1440 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1444 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $0 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/features/reference-types.debug.wat b/tests/compiler/features/reference-types.debug.wat index 356eab9595..ab1230432a 100644 --- a/tests/compiler/features/reference-types.debug.wat +++ b/tests/compiler/features/reference-types.debug.wat @@ -16,12 +16,12 @@ (global $features/reference-types/b funcref (ref.null nofunc)) (global $features/reference-types/nonNullFunc (mut funcref) (ref.null nofunc)) (global $features/reference-types/nonNullReal (mut externref) (ref.null noextern)) - (global $~lib/memory/__data_end i32 (i32.const 156)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32924)) - (global $~lib/memory/__heap_base i32 (i32.const 32924)) + (global $~lib/memory/__data_end i32 (i32.const 220)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32988)) + (global $~lib/memory/__heap_base i32 (i32.const 32988)) (memory $0 1) (data (i32.const 12) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00r\00e\00f\00e\00r\00e\00n\00c\00e\00-\00t\00y\00p\00e\00s\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 92) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (elem declare func $features/reference-types/someFunc) @@ -38,6 +38,8 @@ (func $features/reference-types/testLocal (type $none_=>_none) (local $local funcref) (local $localInit funcref) + ref.null nofunc + local.set $local local.get $local ref.is_null i32.eqz @@ -85,6 +87,8 @@ (func $features/reference-types/testLocal (type $none_=>_none) (local $local externref) (local $localInit externref) + ref.null noextern + local.set $local local.get $local ref.is_null i32.eqz @@ -363,6 +367,7 @@ call $features/reference-types/external local.set $d local.get $d + return ) (func $~start (type $none_=>_none) call $start:features/reference-types diff --git a/tests/compiler/features/reference-types.release.wat b/tests/compiler/features/reference-types.release.wat index 3fd3becfa9..fafc2b8ea2 100644 --- a/tests/compiler/features/reference-types.release.wat +++ b/tests/compiler/features/reference-types.release.wat @@ -15,8 +15,8 @@ (memory $0 1) (data (i32.const 1036) "L") (data (i32.const 1048) "\02\00\00\006\00\00\00f\00e\00a\00t\00u\00r\00e\00s\00/\00r\00e\00f\00e\00r\00e\00n\00c\00e\00-\00t\00y\00p\00e\00s\00.\00t\00s") - (data (i32.const 1116) "<") - (data (i32.const 1128) "\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l") + (data (i32.const 1116) "|") + (data (i32.const 1128) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") (elem declare func $features/reference-types/someFunc) (export "external" (func $features/reference-types/external)) (export "somethingReal" (func $features/reference-types/somethingReal)) diff --git a/tests/compiler/features/reference-types.ts b/tests/compiler/features/reference-types.ts index 0588399629..816c844c4d 100644 --- a/tests/compiler/features/reference-types.ts +++ b/tests/compiler/features/reference-types.ts @@ -66,7 +66,7 @@ var anyGlobalInit: externref = null; assert(!anyGlobalInit); function testLocal(): void { - let local: T; + let local: T = null; assert(!local); local = null; assert(!local); diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index 14f9c05be7..ead11b6651 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -70,6 +70,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -82,17 +83,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -104,8 +106,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -248,6 +248,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -267,6 +268,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -352,15 +354,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -387,6 +386,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -562,22 +562,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -602,16 +605,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -707,18 +713,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -742,18 +751,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -763,12 +775,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -916,22 +931,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -976,16 +994,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1040,10 +1061,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1159,6 +1183,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1168,15 +1193,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1237,17 +1260,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1259,22 +1280,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1347,6 +1366,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1407,8 +1427,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1453,8 +1471,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1504,8 +1520,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1587,6 +1601,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1665,6 +1680,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1680,6 +1696,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1770,16 +1787,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1812,16 +1832,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1835,46 +1858,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1911,10 +1941,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2034,30 +2067,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2128,6 +2167,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2140,6 +2180,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2202,6 +2243,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $field-initialization/Value_Init#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this @@ -2479,12 +2521,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2555,8 +2597,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2585,6 +2625,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2627,6 +2668,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $field-initialization/SomeOtherObject#set:c (type $i32_i32_=>_none) (param $this i32) (param $c i32) local.get $this @@ -4398,6 +4440,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $field-initialization/Nullable#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index 74f7e81c63..9a5697ec94 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -61,6 +61,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -73,17 +74,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -95,8 +97,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -239,6 +239,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -258,6 +259,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -343,15 +345,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -378,6 +377,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -553,22 +553,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -593,16 +596,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -698,18 +704,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -733,18 +742,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -754,12 +766,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -907,22 +922,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -967,16 +985,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1031,10 +1052,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1150,6 +1174,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1159,15 +1184,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1228,17 +1251,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1250,22 +1271,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1338,6 +1357,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1398,8 +1418,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1444,8 +1462,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1495,8 +1511,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1578,6 +1592,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1656,6 +1671,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1671,6 +1687,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1761,16 +1778,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1803,16 +1823,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1826,46 +1849,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1902,10 +1932,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2025,30 +2058,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2119,6 +2158,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2131,6 +2171,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2193,6 +2234,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -2208,6 +2250,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2312,8 +2355,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2324,8 +2365,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2339,8 +2378,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -2439,7 +2476,6 @@ (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -2457,8 +2493,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -2694,5 +2728,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) ) diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 211e83227c..504bc37e85 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -1551,7 +1551,14 @@ br $while-continue|0 end end - br $folding-inner0 + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end unreachable end diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index ed260127e2..bc36562d0a 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -45,15 +45,12 @@ (start $~start) (func $for/testInitExpression (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 local.set $i loop $for-loop|0 local.get $i i32.const 10 i32.lt_s - local.set $1 - local.get $1 if local.get $i i32.const 1 @@ -79,15 +76,12 @@ ) (func $for/testInitStatement (type $none_=>_none) (local $j i32) - (local $1 i32) i32.const 0 local.set $j loop $for-loop|0 local.get $j i32.const 10 i32.lt_s - local.set $1 - local.get $1 if local.get $j i32.const 1 @@ -113,15 +107,12 @@ ) (func $for/testEmpty (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 10 local.set $i loop $for-loop|0 local.get $i i32.const 0 i32.gt_s - local.set $1 - local.get $1 if nop local.get $i @@ -148,14 +139,11 @@ ) (func $for/testConditionOmitted (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 local.set $i block $for-break0 loop $for-loop|0 i32.const 1 - local.set $1 - local.get $1 if local.get $i i32.const 10 @@ -188,14 +176,11 @@ ) (func $for/testAllOmitted (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 10 local.set $i block $for-break0 loop $for-loop|0 i32.const 1 - local.set $1 - local.get $1 if local.get $i i32.const 1 @@ -227,14 +212,11 @@ ) (func $for/testAlwaysTrue (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 local.set $i block $for-break0 loop $for-loop|0 i32.const 1 - local.set $1 - local.get $1 if local.get $i i32.const 1 @@ -272,15 +254,12 @@ ) (func $for/testAlwaysContinues (type $none_=>_none) (local $k i32) - (local $1 i32) i32.const 0 local.set $k loop $for-loop|0 local.get $k i32.const 10 i32.lt_s - local.set $1 - local.get $1 if block $for-continue|0 br $for-continue|0 @@ -309,19 +288,14 @@ ) (func $for/testAlwaysBreaks (type $none_=>_none) (local $k i32) - (local $1 i32) i32.const 0 local.set $k block $for-break0 - loop $for-loop|0 - local.get $k - i32.const 10 - i32.lt_s - local.set $1 - local.get $1 - if - br $for-break0 - end + local.get $k + i32.const 10 + i32.lt_s + if + br $for-break0 end end local.get $k @@ -341,20 +315,15 @@ ) (func $for/testAlwaysReturns (type $none_=>_none) (local $k i32) - (local $1 i32) i32.const 0 local.set $k - loop $for-loop|0 - local.get $k - i32.const 10 - i32.lt_s - local.set $1 - local.get $1 - if - i32.const 1 - global.set $for/ran - return - end + local.get $k + i32.const 10 + i32.lt_s + if + i32.const 1 + global.set $for/ran + return end i32.const 0 i32.eqz @@ -371,8 +340,6 @@ (local $i i32) (local $j i32) (local $k i32) - (local $3 i32) - (local $4 i32) i32.const 0 local.set $i i32.const 0 @@ -383,8 +350,6 @@ local.get $i i32.const 10 i32.lt_s - local.set $3 - local.get $3 if block $for-continue|0 local.get $i @@ -399,8 +364,6 @@ local.get $j i32.const 10 i32.lt_s - local.set $4 - local.get $4 if block $for-continue|1 local.get $i @@ -486,6 +449,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -498,17 +462,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -520,8 +485,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -664,6 +627,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -683,6 +647,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -768,15 +733,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -803,6 +765,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -978,22 +941,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -1018,16 +984,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -1123,18 +1092,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1158,18 +1130,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1179,12 +1154,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1332,22 +1310,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1392,16 +1373,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1456,10 +1440,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1575,6 +1562,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1584,15 +1572,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1653,17 +1639,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1675,22 +1659,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1763,6 +1745,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1823,8 +1806,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1869,8 +1850,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1920,8 +1899,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -2003,6 +1980,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -2081,6 +2059,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -2096,6 +2075,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -2186,16 +2166,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2228,16 +2211,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2251,46 +2237,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2327,10 +2320,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2450,30 +2446,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2544,6 +2546,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2556,6 +2559,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2618,11 +2622,11 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $for/testRef (type $none_=>_none) (local $i i32) (local $ref i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2640,8 +2644,6 @@ i32.store $0 loop $for-loop|0 local.get $ref - local.set $2 - local.get $2 if local.get $i i32.const 1 @@ -2695,11 +2697,11 @@ (func $for/getRef (type $none_=>_i32) (result i32) i32.const 0 call $for/Ref#constructor + return ) (func $for/testRefAutorelease (type $none_=>_none) (local $i i32) (local $ref i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2722,8 +2724,6 @@ block $for-break0 loop $for-loop|0 call $for/getRef - local.set $2 - local.get $2 if local.get $i i32.const 1 @@ -2775,8 +2775,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2787,8 +2785,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2802,8 +2798,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index 6c4b3d18a0..4722c0bdc3 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -79,6 +79,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34264 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1472 + i32.load $0 + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1476 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1255,7 +1387,7 @@ end i32.const 0 local.set $0 - loop $for-loop|01 + loop $for-loop|00 local.get $0 i32.const 10 i32.lt_s @@ -1264,7 +1396,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|01 + br $for-loop|00 end end local.get $0 @@ -1280,7 +1412,7 @@ end i32.const 10 local.set $0 - loop $for-loop|04 + loop $for-loop|01 local.get $0 i32.const 0 i32.gt_s @@ -1289,7 +1421,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|04 + br $for-loop|01 end end local.get $0 @@ -1303,7 +1435,7 @@ end i32.const 0 local.set $0 - loop $for-loop|07 + loop $for-loop|02 local.get $0 i32.const 10 i32.ne @@ -1312,7 +1444,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|07 + br $for-loop|02 end end local.get $0 @@ -1328,12 +1460,12 @@ end i32.const 10 local.set $0 - loop $for-loop|010 + loop $for-loop|04 local.get $0 i32.const 1 i32.sub local.tee $0 - br_if $for-loop|010 + br_if $for-loop|04 end local.get $0 if @@ -1346,14 +1478,14 @@ end i32.const 0 local.set $0 - loop $for-loop|013 + loop $for-loop|06 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $for-loop|013 + br_if $for-loop|06 end local.get $0 i32.const 10 @@ -1368,7 +1500,7 @@ end i32.const 0 local.set $0 - loop $for-loop|016 + loop $for-loop|07 local.get $0 i32.const 10 i32.lt_s @@ -1377,7 +1509,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|016 + br $for-loop|07 end end local.get $0 @@ -1393,7 +1525,7 @@ end i32.const 0 local.set $0 - loop $for-loop|025 + loop $for-loop|09 local.get $0 i32.const 10 i32.lt_s @@ -1430,7 +1562,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|025 + br $for-loop|09 end end local.get $0 @@ -1583,10 +1715,10 @@ call $for/Ref#constructor local.tee $0 i32.store $0 - loop $for-loop|012 + loop $for-loop|011 call $for/Ref#constructor if - block $for-break011 + block $for-break010 local.get $1 i32.const 1 i32.add @@ -1596,13 +1728,13 @@ if i32.const 0 local.set $0 - br $for-break011 + br $for-break010 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor local.tee $0 i32.store $0 - br $for-loop|012 + br $for-loop|011 end end end @@ -1771,146 +1903,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34264 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1472 - i32.load $0 - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1476 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index ea36c95707..6373881af5 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -67,14 +67,17 @@ local.get $a local.get $b i32.add + return ) (func $start:function-call~anonymous|3 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add + return ) (func $start:function-call~fn2|4 (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -94,6 +97,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -106,17 +110,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -128,8 +133,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -272,6 +275,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -291,6 +295,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -376,15 +381,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -411,6 +413,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -586,22 +589,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -626,16 +632,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -731,18 +740,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -766,18 +778,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -787,12 +802,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -940,22 +958,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1000,16 +1021,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1064,10 +1088,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1183,6 +1210,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1192,15 +1220,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1261,17 +1287,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1283,22 +1307,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1371,6 +1393,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1431,8 +1454,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1477,8 +1498,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1528,8 +1547,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1611,6 +1628,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1689,6 +1707,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1704,6 +1723,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1794,16 +1814,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1836,16 +1859,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1859,46 +1885,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1935,10 +1968,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2058,30 +2094,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2152,6 +2194,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2164,6 +2207,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2226,17 +2270,20 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $function-call/Foo#fnVoid (type $i32_=>_none) (param $this i32) nop ) (func $function-call/Foo#fnThis (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $function-call/Foo#fnRet (type $i32_i32_i32_=>_i32) (param $this i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index ad56621872..8ac7ac0a2d 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -118,6 +118,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34572 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1760 + i32.load $0 + i32.gt_u + if + i32.const 1472 + i32.const 1536 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1764 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1498,146 +1630,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34572 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1760 - i32.load $0 - i32.gt_u - if - i32.const 1472 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1764 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index e27b3eb3a0..a15247d61c 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -14,7 +14,7 @@ (global $function-expression/f2 (mut i32) (i32.const 128)) (global $function-expression/f3 (mut i32) (i32.const 160)) (global $function-expression/f4 (mut i32) (i32.const 192)) - (global $function-expression/globalFunc (mut i32) (i32.const 0)) + (global $function-expression/globalFunc (mut i32) (i32.const 480)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -64,15 +64,17 @@ (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 1088) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 20 20 funcref) - (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|1 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $function-expression/testOmittedReturn1~anonymous|0 $function-expression/testOmittedReturn2~anonymous|0 $function-expression/testOmittedReturn3~anonymous|0 $function-expression/testNullable~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testLocal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testField~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl $function-expression/semanticallyAnonymous~fnDecl|0) + (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|1 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $function-expression/testOmittedReturn1~anonymous|0 $function-expression/testOmittedReturn2~anonymous|0 $function-expression/testOmittedReturn3~anonymous|0 $function-expression/testNullable~anonymous|0 $start:function-expression~anonymous|7~anonymous|0 $start:function-expression~anonymous|7 $function-expression/testLocal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testField~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $function-expression/semanticallyAnonymous~fnDecl $function-expression/semanticallyAnonymous~fnDecl|0) (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) (export "memory" (memory $0)) (start $~start) (func $start:function-expression~anonymous|0 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $start:function-expression~anonymous|1 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $start:function-expression~someName|2 (type $none_=>_none) nop @@ -93,6 +95,7 @@ local.get $fn i32.load $0 call_indirect $0 (type $i32_i32_=>_i32) + return ) (func $start:function-expression~anonymous|5 (type $i32_i32_=>_i32) (param $a i32) (param $$1 i32) (result i32) local.get $a @@ -107,18 +110,21 @@ ) (func $function-expression/testOmittedReturn1 (type $none_=>_i32) (result i32) i32.const 320 + return ) (func $function-expression/testOmittedReturn2~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $$1 i32) (result i32) local.get $a ) (func $function-expression/testOmittedReturn2 (type $none_=>_i32) (result i32) i32.const 352 + return ) (func $function-expression/testOmittedReturn3~anonymous|0 (type $i32_i32_=>_i32) (param $$0 i32) (param $$1 i32) (result i32) i32.const 42 ) (func $function-expression/testOmittedReturn3 (type $none_=>_i32) (result i32) i32.const 384 + return ) (func $function-expression/testNullable~anonymous|0 (type $none_=>_i32) (result i32) i32.const 1 @@ -134,10 +140,11 @@ end unreachable ) - (func $function-expression/testGlobal~anonymous|0~anonymous|0 (type $i32_=>_i32) (param $x i32) (result i32) + (func $start:function-expression~anonymous|7~anonymous|0 (type $i32_=>_i32) (param $x i32) (result i32) i32.const 24 local.get $x i32.add + return ) (func $function-expression/testGlobal (type $none_=>_none) (local $0 i32) @@ -149,8 +156,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - i32.const 480 - global.set $function-expression/globalFunc i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 @@ -171,7 +176,7 @@ if i32.const 0 i32.const 64 - i32.const 57 + i32.const 56 i32.const 3 call $~lib/builtins/abort unreachable @@ -185,6 +190,7 @@ i32.const 24 local.get $x i32.add + return ) (func $function-expression/testLocal (type $none_=>_none) (local $localFunc i32) @@ -221,7 +227,7 @@ if i32.const 0 i32.const 64 - i32.const 68 + i32.const 67 i32.const 3 call $~lib/builtins/abort unreachable @@ -249,6 +255,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -261,17 +268,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -283,8 +291,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -427,6 +433,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -446,6 +453,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -531,15 +539,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -566,6 +571,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -741,22 +747,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -781,16 +790,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -886,18 +898,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -921,18 +936,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -942,12 +960,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1095,22 +1116,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1155,16 +1179,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1219,10 +1246,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1338,6 +1368,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1347,15 +1378,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1416,17 +1445,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1438,22 +1465,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1526,6 +1551,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1586,8 +1612,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1632,8 +1656,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1683,8 +1705,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1766,6 +1786,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1844,6 +1865,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1859,6 +1881,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1949,16 +1972,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1991,16 +2017,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2014,46 +2043,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2090,10 +2126,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2213,30 +2252,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2307,6 +2352,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2319,6 +2365,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2381,6 +2428,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2463,6 +2511,7 @@ i32.const 24 local.get $x i32.add + return ) (func $function-expression/FieldClass#get:fieldFunc (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2470,9 +2519,11 @@ ) (func $function-expression/semanticallyAnonymous~fnDecl (type $i32_=>_i32) (param $val i32) (result i32) local.get $val + return ) (func $function-expression/semanticallyAnonymous~fnDecl|0 (type $i32_=>_i32) (param $val i32) (result i32) local.get $val + return ) (func $function-expression/semanticallyAnonymous (type $none_=>_none) (local $fnDecl i32) @@ -2497,7 +2548,7 @@ if i32.const 0 i32.const 64 - i32.const 93 + i32.const 92 i32.const 3 call $~lib/builtins/abort unreachable @@ -2761,7 +2812,7 @@ if i32.const 0 i32.const 64 - i32.const 82 + i32.const 81 i32.const 3 call $~lib/builtins/abort unreachable @@ -2983,7 +3034,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $function-expression/testGlobal~anonymous|0 (type $none_=>_i32) (result i32) + (func $start:function-expression~anonymous|7 (type $none_=>_i32) (result i32) (local $myFunc i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3005,6 +3056,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $function-expression/testLocal~anonymous|0 (type $none_=>_i32) (result i32) (local $myFunc i32) @@ -3028,6 +3080,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $function-expression/FieldClass#constructor (type $i32_i32_=>_i32) (param $this i32) (param $fieldFunc i32) (result i32) (local $2 i32) @@ -3082,5 +3135,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) ) diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index b421059266..05b9de95b5 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -72,7 +72,7 @@ (data (i32.const 2088) "\04\00\00\00\08\00\00\00\13") (data (i32.const 2112) "\n\00\00\00 \00\00\00 \00\00\00 ") (table $0 20 20 funcref) - (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|3 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~anonymous|0) + (elem $0 (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|6 $start:function-expression~anonymous|3 $start:function-expression~anonymous|7~anonymous|0 $start:function-expression~anonymous|7 $start:function-expression~anonymous|7~anonymous|0 $function-expression/testLocal~anonymous|0 $start:function-expression~anonymous|7~anonymous|0 $function-expression/testField~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~anonymous|0) (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) (export "memory" (memory $0)) (start $~start) @@ -94,7 +94,7 @@ (func $start:function-expression~anonymous|6 (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) i32.const 42 ) - (func $function-expression/testGlobal~anonymous|0~anonymous|0 (type $i32_=>_i32) (param $0 i32) (result i32) + (func $start:function-expression~anonymous|7~anonymous|0 (type $i32_=>_i32) (param $0 i32) (result i32) local.get $0 i32.const 24 i32.add @@ -1678,7 +1678,7 @@ if i32.const 0 i32.const 1088 - i32.const 57 + i32.const 56 i32.const 3 call $~lib/builtins/abort unreachable @@ -1717,7 +1717,7 @@ if i32.const 0 i32.const 1088 - i32.const 68 + i32.const 67 i32.const 3 call $~lib/builtins/abort unreachable @@ -1862,7 +1862,7 @@ if i32.const 0 i32.const 1088 - i32.const 82 + i32.const 81 i32.const 3 call $~lib/builtins/abort unreachable @@ -1885,7 +1885,7 @@ call $~lib/builtins/abort unreachable ) - (func $function-expression/testGlobal~anonymous|0 (type $none_=>_i32) (result i32) + (func $start:function-expression~anonymous|7 (type $none_=>_i32) (result i32) (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/function-expression.ts b/tests/compiler/function-expression.ts index 18b4b2ef45..2b5861ab04 100644 --- a/tests/compiler/function-expression.ts +++ b/tests/compiler/function-expression.ts @@ -46,14 +46,13 @@ assert(testNullable(false) == null); // see: https://github.com/AssemblyScript/assemblyscript/issues/1289 -var globalFunc: () => (x: i32) => i32; -function testGlobal(): void { - globalFunc = (): (x:i32) => i32 => { - let myFunc = (x: i32): i32 => { - return 24 + x; - }; - return myFunc; +var globalFunc: () => (x: i32) => i32 = (): (x:i32) => i32 => { + let myFunc = (x: i32): i32 => { + return 24 + x; }; + return myFunc; +}; +function testGlobal(): void { assert(globalFunc()(1) == 25); } testGlobal(); diff --git a/tests/compiler/function-inline-regressions.debug.wat b/tests/compiler/function-inline-regressions.debug.wat index d7c137fc7f..ae9a49bce0 100644 --- a/tests/compiler/function-inline-regressions.debug.wat +++ b/tests/compiler/function-inline-regressions.debug.wat @@ -27,10 +27,12 @@ local.get $b i32.add i32.load $0 + return ) (func $function-inline-regressions/loadZ (type $none_=>_i32) (result i32) i32.const 16 i32.load $0 + return ) (func $function-inline-regressions/Struct#set:v0 (type $i32_i32_=>_none) (param $this i32) (param $v0 i32) local.get $this @@ -77,5 +79,6 @@ local.get $v2 call $function-inline-regressions/Struct#set:v2 local.get $z + return ) ) diff --git a/tests/compiler/function-types.debug.wat b/tests/compiler/function-types.debug.wat index ba80549d32..5c9df7afa6 100644 --- a/tests/compiler/function-types.debug.wat +++ b/tests/compiler/function-types.debug.wat @@ -27,25 +27,31 @@ local.get $a local.get $b i32.add + return ) (func $function-types/makeAdder (type $none_=>_i32) (result i32) i32.const 32 + return ) (func $function-types/makeAdder~anonymous|0 (type $i64_i64_=>_i64) (param $a i64) (param $b i64) (result i64) local.get $a local.get $b i64.add + return ) (func $function-types/makeAdder (type $none_=>_i32) (result i32) i32.const 128 + return ) (func $function-types/makeAdder~anonymous|0 (type $f64_f64_=>_f64) (param $a f64) (param $b f64) (result f64) local.get $a local.get $b f64.add + return ) (func $function-types/makeAdder (type $none_=>_i32) (result i32) i32.const 160 + return ) (func $function-types/doAddWithFn (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $fn i32) (result i32) local.get $a @@ -55,6 +61,7 @@ local.get $fn i32.load $0 call_indirect $0 (type $i32_i32_=>_i32) + return ) (func $function-types/doAdd (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -64,11 +71,13 @@ call $function-types/makeAdder i32.load $0 call_indirect $0 (type $i32_i32_=>_i32) + return ) (func $function-types/addI32 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add + return ) (func $function-types/makeAndAdd (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $adder i32) (result i32) local.get $a @@ -78,6 +87,7 @@ local.get $adder i32.load $0 call_indirect $0 (type $i32_i32_=>_i32) + return ) (func $~start (type $none_=>_none) call $start:function-types diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index a4ec24df70..6e70e5da38 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -62,6 +62,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -74,17 +75,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -96,8 +98,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -240,6 +240,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -259,6 +260,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -344,15 +346,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -379,6 +378,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -554,22 +554,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -594,16 +597,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -699,18 +705,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -734,18 +743,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -755,12 +767,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -908,22 +923,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -968,16 +986,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1032,10 +1053,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1151,6 +1175,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1160,15 +1185,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1229,17 +1252,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1251,22 +1272,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1339,6 +1358,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1399,8 +1419,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1445,8 +1463,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1496,8 +1512,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1579,6 +1593,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1657,6 +1672,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1672,6 +1688,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1762,16 +1779,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1804,16 +1824,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1827,46 +1850,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1903,10 +1933,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2026,30 +2059,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2120,6 +2159,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2132,6 +2172,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2194,12 +2235,14 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $getter-call/C#get:x~anonymous|0 (type $none_=>_i32) (result i32) i32.const 42 ) (func $getter-call/C#get:x (type $i32_=>_i32) (param $this i32) (result i32) i32.const 432 + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -2400,5 +2443,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) ) diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index c757d4bce6..9b2873b923 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_i32 (func_subtype (result i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -82,6 +82,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34268 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1472 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1476 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1396,146 +1528,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34268 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1472 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1476 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/getter-setter.debug.wat b/tests/compiler/getter-setter.debug.wat index 12f7cb3373..3a9abf5ef1 100644 --- a/tests/compiler/getter-setter.debug.wat +++ b/tests/compiler/getter-setter.debug.wat @@ -16,6 +16,7 @@ (start $~start) (func $getter-setter/Foo.get:bar (type $none_=>_i32) (result i32) global.get $getter-setter/Foo._bar + return ) (func $getter-setter/Foo.set:bar (type $i32_=>_none) (param $bar i32) local.get $bar diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index 0eefb9e0ff..0410204606 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -199,22 +199,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -239,16 +242,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -344,18 +350,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -379,18 +388,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -400,12 +412,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -553,22 +568,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -613,16 +631,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -677,10 +698,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -796,6 +820,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -805,15 +830,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -874,17 +897,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -896,22 +917,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -967,6 +986,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -982,6 +1002,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1072,16 +1093,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1114,16 +1138,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1137,46 +1164,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1213,10 +1247,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -1336,30 +1373,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -1430,6 +1473,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -1442,10 +1486,12 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/memory/heap.alloc (type $i32_=>_i32) (param $size i32) (result i32) local.get $size call $~lib/rt/tlsf/__alloc + return ) (func $~lib/rt/tlsf/checkUsedBlock (type $i32_=>_i32) (param $ptr i32) (result i32) (local $block i32) @@ -1483,6 +1529,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1527,6 +1574,7 @@ call $~lib/rt/tlsf/freeBlock end local.get $newBlock + return ) (func $~lib/rt/tlsf/reallocateBlock (type $i32_i32_i32_=>_i32) (param $root i32) (param $block i32) (param $size i32) (result i32) (local $payloadSize i32) @@ -1561,18 +1609,21 @@ local.get $block return end - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.4 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.4 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1619,6 +1670,7 @@ local.get $block local.get $size call $~lib/rt/tlsf/moveBlock + return ) (func $~lib/rt/tlsf/__realloc (type $i32_i32_=>_i32) (param $ptr i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -1644,11 +1696,13 @@ end i32.const 4 i32.add + return ) (func $~lib/memory/heap.realloc (type $i32_i32_=>_i32) (param $ptr i32) (param $size i32) (result i32) local.get $ptr local.get $size call $~lib/rt/tlsf/__realloc + return ) (func $~lib/rt/tlsf/__free (type $i32_=>_none) (param $ptr i32) local.get $ptr diff --git a/tests/compiler/if.debug.wat b/tests/compiler/if.debug.wat index d89bcf97a2..5f6f476898 100644 --- a/tests/compiler/if.debug.wat +++ b/tests/compiler/if.debug.wat @@ -35,6 +35,7 @@ return end i32.const 0 + return ) (func $if/ifThenElseBlock (type $i32_=>_i32) (param $n i32) (result i32) local.get $n diff --git a/tests/compiler/import.debug.wat b/tests/compiler/import.debug.wat index 3dcdf0ef4e..b3743a0ee5 100644 --- a/tests/compiler/import.debug.wat +++ b/tests/compiler/import.debug.wat @@ -16,16 +16,19 @@ local.get $a local.get $b i32.add + return ) (func $export/sub (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.sub + return ) (func $export/mul (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.mul + return ) (func $export/ns.two (type $none_=>_none) nop diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index 0ab00fcece..a753a147d3 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -78,6 +78,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -90,17 +91,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -112,8 +114,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -256,6 +256,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -275,6 +276,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -360,15 +362,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -395,6 +394,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -570,22 +570,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -610,16 +613,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -715,18 +721,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -750,18 +759,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -771,12 +783,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -924,22 +939,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -984,16 +1002,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1048,10 +1069,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1167,6 +1191,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1176,15 +1201,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1245,17 +1268,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1267,22 +1288,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1355,6 +1374,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1415,8 +1435,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1461,8 +1479,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1512,8 +1528,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1595,6 +1609,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1673,6 +1688,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1688,6 +1704,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1778,16 +1795,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1820,16 +1840,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1843,46 +1866,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1919,10 +1949,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2042,30 +2075,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2136,6 +2175,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2148,6 +2188,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2210,6 +2251,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -2225,6 +2267,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2327,6 +2370,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2361,6 +2405,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2395,6 +2440,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2429,6 +2475,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2495,6 +2542,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array<~lib/array/Array>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3239,7 +3287,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -3257,8 +3304,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -3296,7 +3341,6 @@ (func $~lib/array/Array<~lib/string/String|null>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -3314,8 +3358,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -3373,7 +3415,6 @@ (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -3391,8 +3432,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -3566,6 +3605,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -3673,6 +3713,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array<~lib/string/String|null>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3719,6 +3760,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array<~lib/array/Array>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3775,5 +3817,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) ) diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 01e116bda3..44773ea851 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -2049,17 +2049,17 @@ i32.const 2 i32.shl i32.add - local.set $3 + local.set $2 loop $while-continue|0 local.get $1 - local.get $3 + local.get $2 i32.lt_u if local.get $1 i32.load $0 - local.tee $2 + local.tee $3 if - local.get $2 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $1 diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index f2a824c9da..e51ca9991e 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -60,6 +60,7 @@ local.get $a local.get $b f64.eq + return ) (func $start:infer-generic~anonymous|0 (type $i32_f32_i32_i32_=>_i32) (param $acc i32) (param $cur f32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -85,7 +86,6 @@ (local $len i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $initialValue local.set $acc i32.const 0 @@ -105,8 +105,6 @@ i32.lt_s select i32.lt_s - local.set $8 - local.get $8 if local.get $acc local.get $this @@ -132,9 +130,11 @@ end end local.get $acc + return ) (func $infer-generic/inferDefault (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $infer-generic/Ref#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this @@ -159,6 +159,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -171,17 +172,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -193,8 +195,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -337,6 +337,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -356,6 +357,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -441,15 +443,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -476,6 +475,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -651,22 +651,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -691,16 +694,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -796,18 +802,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -831,18 +840,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -852,12 +864,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1005,22 +1020,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1065,16 +1083,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1129,10 +1150,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1248,6 +1272,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1257,15 +1282,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1326,17 +1349,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1348,22 +1369,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1436,6 +1455,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1496,8 +1516,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1542,8 +1560,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1593,8 +1609,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1676,6 +1690,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1754,6 +1769,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1769,6 +1785,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1859,16 +1876,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1901,16 +1921,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1924,46 +1947,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2000,10 +2030,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2123,30 +2156,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2217,6 +2256,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2229,6 +2269,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2291,44 +2332,56 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $infer-generic/inferDefault (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $infer-generic/inferPlain (type $f32_=>_f32) (param $arr f32) (result f32) local.get $arr + return ) (func $infer-generic/test1 (type $f32_=>_f32) (param $arr f32) (result f32) local.get $arr call $infer-generic/inferPlain + return ) (func $infer-generic/inferEncapsulatedClass (type $i32_=>_i32) (param $arr i32) (result i32) local.get $arr + return ) (func $infer-generic/test2 (type $i32_=>_i32) (param $arr i32) (result i32) local.get $arr call $infer-generic/inferEncapsulatedClass + return ) (func $infer-generic/inferEncapsulatedFunctionNull (type $i32_=>_i32) (param $fn i32) (result i32) local.get $fn + return ) (func $infer-generic/test3 (type $i32_=>_i32) (param $fn i32) (result i32) local.get $fn call $infer-generic/inferEncapsulatedFunctionNull + return ) (func $infer-generic/inferEncapsulatedFunction (type $i32_=>_i32) (param $fn i32) (result i32) local.get $fn + return ) (func $infer-generic/test4 (type $i32_=>_i32) (param $fn i32) (result i32) local.get $fn call $infer-generic/inferEncapsulatedFunction + return ) (func $infer-generic/inferEncapsulatedFunctionMixed (type $i32_=>_i32) (param $fn i32) (result i32) local.get $fn + return ) (func $infer-generic/test5 (type $i32_=>_i32) (param $fn i32) (result i32) local.get $fn call $infer-generic/inferEncapsulatedFunctionMixed + return ) (func $infer-generic/Ref#get:x (type $i32_=>_i32) (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index 4e7db5833a..7e3d8d9510 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1,6 +1,6 @@ (module - (type $none_=>_none (func_subtype func)) (type $i32_=>_none (func_subtype (param i32) func)) + (type $none_=>_none (func_subtype func)) (type $i32_f32_i32_i32_=>_i32 (func_subtype (param i32 f32 i32 i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) @@ -106,6 +106,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34428 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1296 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1616 + i32.load $0 + i32.gt_u + if + i32.const 1424 + i32.const 1488 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1620 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1699,146 +1831,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1296 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34428 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1296 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1296 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1616 - i32.load $0 - i32.gt_u - if - i32.const 1424 - i32.const 1488 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1620 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/infer-type.debug.wat b/tests/compiler/infer-type.debug.wat index 7aa1b10004..05e5a0ddc5 100644 --- a/tests/compiler/infer-type.debug.wat +++ b/tests/compiler/infer-type.debug.wat @@ -43,20 +43,23 @@ ) (func $infer-type/reti (type $none_=>_i32) (result i32) i32.const 0 + return ) (func $infer-type/retI (type $none_=>_i64) (result i64) i64.const 0 + return ) (func $infer-type/retf (type $none_=>_f32) (result f32) f32.const 0 + return ) (func $infer-type/refF (type $none_=>_f64) (result f64) f64.const 0 + return ) (func $start:infer-type (type $none_=>_none) (local $a i32) (local $b i32) - (local $2 i32) global.get $infer-type/i drop global.get $infer-type/I @@ -88,8 +91,6 @@ local.get $a local.get $b i32.lt_s - local.set $2 - local.get $2 if local.get $a i32.const 1 diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index f54b0d522f..4e0e5b7c99 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -50,6 +50,7 @@ global.get $inlining/constantGlobal i32.const 2 i32.add + return ) (func $inlining/func_fe~anonymous|0 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a @@ -111,6 +112,7 @@ else i32.const 3 end + br $inlining/func_ii|inlined.0 end i32.const 1 i32.eq @@ -133,6 +135,7 @@ else i32.const 3 end + br $inlining/func_ii|inlined.1 end i32.const 2 i32.eq @@ -155,63 +158,82 @@ else i32.const 3 end + br $inlining/func_ii|inlined.2 end i32.const 3 i32.eq drop - i32.const 0 - local.set $a|5 - local.get $a|5 + block $inlining/func_ii_opt|inlined.0 (result i32) + i32.const 0 + local.set $a|5 + local.get $a|5 + br $inlining/func_ii_opt|inlined.0 + end i32.const 0 i32.eq drop - i32.const 1 - local.set $a|6 - local.get $a|6 + block $inlining/func_ii_opt|inlined.1 (result i32) + i32.const 1 + local.set $a|6 + local.get $a|6 + br $inlining/func_ii_opt|inlined.1 + end i32.const 1 i32.eq drop - i32.const 1 - local.set $a|7 - local.get $a|7 - local.set $a|8 - local.get $a|8 + block $inlining/func_ii_opt|inlined.3 (result i32) + block $inlining/func_ii_opt|inlined.2 (result i32) + i32.const 1 + local.set $a|7 + local.get $a|7 + br $inlining/func_ii_opt|inlined.2 + end + local.set $a|8 + local.get $a|8 + br $inlining/func_ii_opt|inlined.3 + end i32.const 1 i32.eq drop - i32.const 2 - local.set $a|9 - local.get $a|9 - local.set $b|10 - i32.const 1 - drop - local.get $b|10 - local.set $c - local.get $c - local.set $d - local.get $d - i32.const 1 - i32.add - local.set $e - local.get $e + block $inlining/func_ii_loc|inlined.0 (result i32) + i32.const 2 + local.set $a|9 + local.get $a|9 + local.set $b|10 + i32.const 1 + drop + local.get $b|10 + local.set $c + local.get $c + local.set $d + local.get $d + i32.const 1 + i32.add + local.set $e + local.get $e + br $inlining/func_ii_loc|inlined.0 + end i32.const 3 i32.eq drop - i32.const 3 - local.set $a|14 - local.get $a|14 - local.set $b|15 - i32.const 1 - drop - local.get $b|15 - local.set $c|17 - local.get $c|17 - local.set $d|18 - local.get $d|18 - i32.const 1 - i32.add - local.set $e|16 - local.get $e|16 + block $inlining/func_ii_loc|inlined.1 (result i32) + i32.const 3 + local.set $a|14 + local.get $a|14 + local.set $b|15 + i32.const 1 + drop + local.get $b|15 + local.set $c|17 + local.get $c|17 + local.set $d|18 + local.get $d|18 + i32.const 1 + i32.add + local.set $e|16 + local.get $e|16 + br $inlining/func_ii_loc|inlined.1 + end i32.const 4 i32.eq drop @@ -220,7 +242,10 @@ i32.const 2 i32.const 1 global.set $~argumentsLength - i32.const 80 + block $inlining/func_fe|inlined.0 (result i32) + i32.const 80 + br $inlining/func_fe|inlined.0 + end i32.load $0 call_indirect $0 (type $i32_=>_i32) i32.const 2 @@ -234,13 +259,16 @@ call $~lib/builtins/abort unreachable end - i32.const 42 - local.set $a|20 - i32.const 2 - local.set $b|21 - local.get $a|20 - local.get $b|21 - i32.add + block $inlining/Foo.method_static|inlined.0 (result i32) + i32.const 42 + local.set $a|20 + i32.const 2 + local.set $b|21 + local.get $a|20 + local.get $b|21 + i32.add + br $inlining/Foo.method_static|inlined.0 + end i32.const 44 i32.eq drop @@ -248,13 +276,16 @@ i32.const 123 local.tee $foo i32.store $0 - local.get $foo - local.set $this - i32.const 43 - local.set $a|24 - i32.const 3 - local.set $b|25 - local.get $this + block $inlining/Foo#method_this|inlined.0 (result i32) + local.get $foo + local.set $this + i32.const 43 + local.set $a|24 + i32.const 3 + local.set $b|25 + local.get $this + br $inlining/Foo#method_this|inlined.0 + end i32.const 123 i32.eq i32.eqz @@ -294,6 +325,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -306,17 +338,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -328,8 +361,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -472,6 +503,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -491,6 +523,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -576,15 +609,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -611,6 +641,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -786,22 +817,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -826,16 +860,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -931,18 +968,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -966,18 +1006,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -987,12 +1030,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1140,22 +1186,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1200,16 +1249,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1264,10 +1316,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1383,6 +1438,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1392,15 +1448,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1461,17 +1515,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1483,22 +1535,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1571,6 +1621,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1631,8 +1682,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1677,8 +1726,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1728,8 +1775,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1811,6 +1856,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1889,6 +1935,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1904,6 +1951,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1994,16 +2042,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2036,16 +2087,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2059,46 +2113,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2135,10 +2196,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2258,30 +2322,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2352,6 +2422,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2364,6 +2435,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2426,6 +2498,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $inlining/Baz#set:a (type $i32_i32_=>_none) (param $this i32) (param $a i32) local.get $this diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index 1cd2615205..1229484b81 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1,10 +1,10 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -92,6 +92,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34324 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1520 + i32.load $0 + i32.gt_u + if + i32.const 1328 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1524 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1608,146 +1740,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34324 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1520 - i32.load $0 - i32.gt_u - if - i32.const 1328 - i32.const 1392 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1524 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index 2eefc73e11..10167dda24 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -6,17 +6,10 @@ (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) - (type $f64_=>_i32 (func_subtype (param f64) (result i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) + (type $f64_=>_i32 (func_subtype (param f64) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $instanceof/a (mut i32) (i32.const 0)) - (global $instanceof/b (mut i32) (i32.const 0)) - (global $instanceof/i (mut i32) (i32.const 0)) - (global $instanceof/I (mut i64) (i64.const 0)) - (global $instanceof/f (mut f32) (f32.const 0)) - (global $instanceof/F (mut f64) (f64.const 0)) - (global $instanceof/an (mut i32) (i32.const 0)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -31,6 +24,13 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $instanceof/a (mut i32) (i32.const 0)) + (global $instanceof/b (mut i32) (i32.const 0)) + (global $instanceof/i (mut i32) (i32.const 0)) + (global $instanceof/I (mut i64) (i64.const 0)) + (global $instanceof/f (mut f32) (f32.const 0)) + (global $instanceof/F (mut f64) (f64.const 0)) + (global $instanceof/an (mut i32) (i32.const 0)) (global $instanceof/child (mut i32) (i32.const 0)) (global $instanceof/childAsParent (mut i32) (i32.const 0)) (global $instanceof/animal (mut i32) (i32.const 0)) @@ -47,44 +47,20 @@ (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33292)) (global $~lib/memory/__heap_base i32 (i32.const 33292)) (memory $0 1) - (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00\00\00") - (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 124) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 252) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 396) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00\00\00") (data (i32.const 464) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $instanceof/isI32 (type $i32_=>_i32) (param $v i32) (result i32) - i32.const 1 - drop - i32.const 1 - return - ) - (func $instanceof/isI32 (type $f64_=>_i32) (param $v f64) (result i32) - i32.const 0 - drop - i32.const 0 - return - ) - (func $instanceof/isI32 (type $i32_=>_i32) (param $v i32) (result i32) - i32.const 0 - drop - i32.const 0 - return - ) - (func $instanceof/isI32 (type $i32_=>_i32) (param $v i32) (result i32) - i32.const 0 - drop - i32.const 0 - return - ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this local.get $nextWithColor @@ -103,6 +79,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -115,17 +92,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -137,8 +115,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -149,7 +125,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 96 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -219,7 +195,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 96 i32.const 128 i32.const 18 call $~lib/builtins/abort @@ -236,7 +212,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 96 i32.const 132 i32.const 16 call $~lib/builtins/abort @@ -266,8 +242,8 @@ i32.load $0 i32.gt_u if - i32.const 272 - i32.const 336 + i32.const 224 + i32.const 288 i32.const 21 i32.const 28 call $~lib/builtins/abort @@ -281,6 +257,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -300,6 +277,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -333,7 +311,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 144 + i32.const 96 i32.const 148 i32.const 30 call $~lib/builtins/abort @@ -385,15 +363,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -420,6 +395,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -487,7 +463,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -507,7 +483,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -570,7 +546,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -595,22 +571,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -635,16 +614,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -717,7 +699,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -734,24 +716,27 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 203 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -775,18 +760,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -796,12 +784,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -814,7 +805,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -857,7 +848,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -875,7 +866,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -943,28 +934,31 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 251 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1009,16 +1003,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1049,7 +1046,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 377 i32.const 14 call $~lib/builtins/abort @@ -1073,10 +1070,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1092,7 +1092,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 384 i32.const 16 call $~lib/builtins/abort @@ -1125,7 +1125,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 397 i32.const 5 call $~lib/builtins/abort @@ -1192,6 +1192,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1201,15 +1202,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1270,17 +1269,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1292,22 +1289,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1373,13 +1368,14 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 559 i32.const 3 call $~lib/builtins/abort unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1440,8 +1436,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1486,8 +1480,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1537,8 +1529,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1598,7 +1588,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 96 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -1620,6 +1610,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1698,14 +1689,15 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size i32.const 1073741820 i32.gt_u if - i32.const 80 - i32.const 416 + i32.const 32 + i32.const 368 i32.const 458 i32.const 29 call $~lib/builtins/abort @@ -1713,6 +1705,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1797,22 +1790,25 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 330 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1845,16 +1841,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1862,52 +1861,59 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 343 i32.const 18 call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1944,10 +1950,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2016,7 +2025,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 357 i32.const 14 call $~lib/builtins/abort @@ -2067,30 +2076,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2125,7 +2140,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 496 i32.const 16 call $~lib/builtins/abort @@ -2145,7 +2160,7 @@ i32.eqz if i32.const 0 - i32.const 416 + i32.const 368 i32.const 498 i32.const 14 call $~lib/builtins/abort @@ -2161,6 +2176,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2173,6 +2189,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2191,8 +2208,8 @@ i32.const 1073741804 i32.ge_u if - i32.const 80 - i32.const 144 + i32.const 32 + i32.const 96 i32.const 261 i32.const 31 call $~lib/builtins/abort @@ -2235,6 +2252,31 @@ local.get $size memory.fill $0 local.get $ptr + return + ) + (func $instanceof/isI32 (type $i32_=>_i32) (param $v i32) (result i32) + i32.const 1 + drop + i32.const 1 + return + ) + (func $instanceof/isI32 (type $f64_=>_i32) (param $v f64) (result i32) + i32.const 0 + drop + i32.const 0 + return + ) + (func $instanceof/isI32 (type $i32_=>_i32) (param $v i32) (result i32) + i32.const 0 + drop + i32.const 0 + return + ) + (func $instanceof/isI32 (type $i32_=>_i32) (param $v i32) (result i32) + i32.const 0 + drop + i32.const 0 + return ) (func $start:instanceof (type $none_=>_none) (local $0 i32) @@ -2267,6 +2309,29 @@ i32.const 0 i32.const 84 memory.fill $0 + memory.size $0 + i32.const 16 + i32.shl + global.get $~lib/memory/__heap_base + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 144 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 176 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $instanceof/A#constructor + global.set $instanceof/a + i32.const 0 + call $instanceof/B#constructor + global.set $instanceof/b i32.const 1 drop i32.const 1 @@ -2299,7 +2364,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 18 i32.const 1 call $~lib/builtins/abort @@ -2392,7 +2457,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 62 i32.const 1 call $~lib/builtins/abort @@ -2404,7 +2469,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 63 i32.const 1 call $~lib/builtins/abort @@ -2416,7 +2481,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 64 i32.const 1 call $~lib/builtins/abort @@ -2428,7 +2493,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 65 i32.const 1 call $~lib/builtins/abort @@ -2441,7 +2506,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 68 i32.const 1 call $~lib/builtins/abort @@ -2457,7 +2522,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 71 i32.const 1 call $~lib/builtins/abort @@ -2465,23 +2530,6 @@ end i32.const 1 drop - memory.size $0 - i32.const 16 - i32.shl - global.get $~lib/memory/__heap_base - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 192 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 224 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 368 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace i32.const 0 call $instanceof/Child#constructor global.set $instanceof/child @@ -2530,7 +2578,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -2554,7 +2602,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 96 i32.const 1 call $~lib/builtins/abort @@ -2593,7 +2641,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -2615,7 +2663,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -2638,7 +2686,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -2660,7 +2708,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -2683,7 +2731,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -2704,7 +2752,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -2725,7 +2773,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 126 i32.const 1 call $~lib/builtins/abort @@ -2747,7 +2795,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 127 i32.const 1 call $~lib/builtins/abort @@ -2769,7 +2817,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 128 i32.const 1 call $~lib/builtins/abort @@ -2781,7 +2829,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 130 i32.const 1 call $~lib/builtins/abort @@ -2802,7 +2850,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 131 i32.const 1 call $~lib/builtins/abort @@ -2824,7 +2872,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 132 i32.const 1 call $~lib/builtins/abort @@ -2836,7 +2884,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 134 i32.const 1 call $~lib/builtins/abort @@ -2857,7 +2905,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 135 i32.const 1 call $~lib/builtins/abort @@ -2878,7 +2926,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 136 i32.const 1 call $~lib/builtins/abort @@ -2891,7 +2939,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 142 i32.const 1 call $~lib/builtins/abort @@ -2913,7 +2961,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 143 i32.const 1 call $~lib/builtins/abort @@ -2935,7 +2983,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 144 i32.const 1 call $~lib/builtins/abort @@ -2948,7 +2996,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 146 i32.const 1 call $~lib/builtins/abort @@ -2970,7 +3018,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 147 i32.const 1 call $~lib/builtins/abort @@ -2992,7 +3040,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 148 i32.const 1 call $~lib/builtins/abort @@ -3005,7 +3053,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 150 i32.const 1 call $~lib/builtins/abort @@ -3027,7 +3075,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 151 i32.const 1 call $~lib/builtins/abort @@ -3049,7 +3097,7 @@ i32.eqz if i32.const 0 - i32.const 32 + i32.const 432 i32.const 152 i32.const 1 call $~lib/builtins/abort @@ -3253,10 +3301,10 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 272 + i32.const 224 local.get $0 call $~lib/rt/itcms/__visit - i32.const 80 + i32.const 32 local.get $0 call $~lib/rt/itcms/__visit ) @@ -3376,6 +3424,72 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $instanceof/A#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $~lib/object/Object#constructor + local.tee $this + i32.store $0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $instanceof/B#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $this + call $instanceof/A#constructor + local.tee $this + i32.store $0 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) (func $instanceof/Parent#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index f6b042ae30..285a61dcad 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -1,13 +1,12 @@ (module (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $instanceof/an (mut i32) (i32.const 0)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -18,6 +17,9 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $instanceof/a (mut i32) (i32.const 0)) + (global $instanceof/b (mut i32) (i32.const 0)) + (global $instanceof/an (mut i32) (i32.const 0)) (global $instanceof/child (mut i32) (i32.const 0)) (global $instanceof/childAsParent (mut i32) (i32.const 0)) (global $instanceof/animal (mut i32) (i32.const 0)) @@ -28,24 +30,36 @@ (global $instanceof/nullableBlackcat (mut i32) (i32.const 0)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34316)) (memory $0 1) - (data (i32.const 1036) ",") - (data (i32.const 1048) "\02\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s") - (data (i32.const 1084) "<") - (data (i32.const 1096) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 1148) "<") - (data (i32.const 1160) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 1276) "<") - (data (i32.const 1288) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 1340) ",") - (data (i32.const 1352) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 1420) "<") - (data (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1036) "<") + (data (i32.const 1048) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data (i32.const 1100) "<") + (data (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 1228) "<") + (data (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data (i32.const 1292) ",") + (data (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 1372) "<") + (data (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data (i32.const 1436) ",") + (data (i32.const 1448) "\02\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s") (data (i32.const 1488) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (type $none_=>_none) (local $0 i32) (local $1 i32) + global.get $instanceof/a + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + global.get $instanceof/b + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end global.get $instanceof/an local.tee $0 if @@ -100,9 +114,9 @@ local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__visit end - i32.const 1296 + i32.const 1248 call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 1104 + i32.const 1056 call $byn-split-outlined-A$~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -123,7 +137,7 @@ i32.ne if i32.const 0 - i32.const 1168 + i32.const 1120 i32.const 160 i32.const 16 call $~lib/builtins/abort @@ -142,6 +156,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34316 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -155,7 +301,7 @@ i32.eqz if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 268 i32.const 14 call $~lib/builtins/abort @@ -169,7 +315,7 @@ i32.lt_u if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 270 i32.const 14 call $~lib/builtins/abort @@ -215,7 +361,7 @@ i32.eqz if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -305,7 +451,7 @@ i32.eqz if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -319,7 +465,7 @@ i32.eqz if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -380,7 +526,7 @@ i32.eqz if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -413,7 +559,7 @@ i32.lt_u if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -428,7 +574,7 @@ i32.ne if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -479,7 +625,7 @@ i32.eqz if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -549,7 +695,7 @@ i32.gt_u if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 377 i32.const 14 call $~lib/builtins/abort @@ -574,7 +720,7 @@ i32.gt_u if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 384 i32.const 16 call $~lib/builtins/abort @@ -602,7 +748,7 @@ i32.gt_u if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 397 i32.const 5 call $~lib/builtins/abort @@ -907,7 +1053,7 @@ i32.ne if i32.const 0 - i32.const 1168 + i32.const 1120 i32.const 229 i32.const 20 call $~lib/builtins/abort @@ -967,7 +1113,7 @@ end if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 559 i32.const 3 call $~lib/builtins/abort @@ -1034,7 +1180,7 @@ i32.eqz if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 343 i32.const 18 call $~lib/builtins/abort @@ -1166,7 +1312,7 @@ i32.eqz if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 496 i32.const 16 call $~lib/builtins/abort @@ -1181,7 +1327,7 @@ i32.lt_u if i32.const 0 - i32.const 1440 + i32.const 1392 i32.const 498 i32.const 14 call $~lib/builtins/abort @@ -1302,24 +1448,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 84 memory.fill $0 - local.get $0 - i32.const 0 - i32.store $0 - global.get $instanceof/an - if - i32.const 0 - i32.const 1056 - i32.const 68 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $instanceof/an memory.size $0 i32.const 16 i32.shl @@ -1328,30 +1459,95 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 + i32.const 1172 + i32.const 1168 i32.store $0 - i32.const 1224 - i32.const 1216 + i32.const 1176 + i32.const 1168 i32.store $0 - i32.const 1216 + i32.const 1168 global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 + i32.const 1204 + i32.const 1200 i32.store $0 - i32.const 1256 - i32.const 1248 + i32.const 1208 + i32.const 1200 i32.store $0 - i32.const 1248 + i32.const 1200 global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 + i32.const 1348 + i32.const 1344 i32.store $0 - i32.const 1400 - i32.const 1392 + i32.const 1352 + i32.const 1344 i32.store $0 - i32.const 1392 + i32.const 1344 global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $instanceof/A#constructor + global.set $instanceof/a + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store $0 + local.get $0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $instanceof/A#constructor + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $instanceof/b + global.get $~lib/memory/__stack_pointer + global.get $instanceof/a + local.tee $0 + i32.store $0 + local.get $0 + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load $0 + i32.const 5 + i32.eq + else + i32.const 0 + end + if + i32.const 0 + i32.const 1456 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $instanceof/an + if + i32.const 0 + i32.const 1456 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $instanceof/an global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1482,7 +1678,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 94 i32.const 1 call $~lib/builtins/abort @@ -1519,7 +1715,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 96 i32.const 1 call $~lib/builtins/abort @@ -1563,7 +1759,7 @@ end if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 111 i32.const 1 call $~lib/builtins/abort @@ -1586,7 +1782,7 @@ end if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 112 i32.const 1 call $~lib/builtins/abort @@ -1623,7 +1819,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 115 i32.const 1 call $~lib/builtins/abort @@ -1646,7 +1842,7 @@ end if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 116 i32.const 1 call $~lib/builtins/abort @@ -1683,7 +1879,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 119 i32.const 1 call $~lib/builtins/abort @@ -1707,7 +1903,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 120 i32.const 1 call $~lib/builtins/abort @@ -1725,7 +1921,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 126 i32.const 1 call $~lib/builtins/abort @@ -1761,7 +1957,7 @@ end if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 127 i32.const 1 call $~lib/builtins/abort @@ -1784,7 +1980,7 @@ end if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 128 i32.const 1 call $~lib/builtins/abort @@ -1794,7 +1990,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 130 i32.const 1 call $~lib/builtins/abort @@ -1831,7 +2027,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 131 i32.const 1 call $~lib/builtins/abort @@ -1854,7 +2050,7 @@ end if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 132 i32.const 1 call $~lib/builtins/abort @@ -1864,7 +2060,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 134 i32.const 1 call $~lib/builtins/abort @@ -1901,7 +2097,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 135 i32.const 1 call $~lib/builtins/abort @@ -1925,7 +2121,7 @@ i32.eqz if i32.const 0 - i32.const 1056 + i32.const 1456 i32.const 136 i32.const 1 call $~lib/builtins/abort @@ -2059,6 +2255,45 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $instanceof/A#constructor (type $i32_=>_i32) (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + if + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) (func $instanceof/Animal#constructor (type $i32_=>_i32) (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2175,146 +2410,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34316 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load $0 - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1492 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/instanceof.ts b/tests/compiler/instanceof.ts index 8695c1b050..c394d51808 100644 --- a/tests/compiler/instanceof.ts +++ b/tests/compiler/instanceof.ts @@ -1,8 +1,8 @@ class A {} class B extends A {} -var a: A; -var b: B; +var a: A = new A(); +var b: B = new B(); var i: i32; var I: i64; var f: f32; diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 4f4cdc4a01..9b48a480b0 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -23,10 +23,10 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 560)) - (global $~lib/memory/__data_end i32 (i32.const 584)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33352)) - (global $~lib/memory/__heap_base i32 (i32.const 33352)) + (global $~lib/rt/__rtti_base i32 (i32.const 624)) + (global $~lib/memory/__data_end i32 (i32.const 648)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33416)) + (global $~lib/memory/__heap_base i32 (i32.const 33416)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") @@ -37,9 +37,9 @@ (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00e\00s\00t\00\00\00\00\00") - (data (i32.const 444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 508) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s\00") - (data (i32.const 560) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 444) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 572) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s\00") + (data (i32.const 624) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -62,6 +62,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -74,17 +75,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -96,8 +98,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -240,6 +240,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -259,6 +260,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -344,15 +346,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -379,6 +378,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -554,22 +554,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -594,16 +597,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -699,18 +705,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -734,18 +743,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -755,12 +767,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -908,22 +923,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -968,16 +986,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1032,10 +1053,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1151,6 +1175,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1160,15 +1185,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1229,17 +1252,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1251,22 +1272,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1339,6 +1358,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1399,8 +1419,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1445,8 +1463,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1496,8 +1512,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1579,6 +1593,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1657,6 +1672,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1672,6 +1688,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1762,16 +1779,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1804,16 +1824,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1827,46 +1850,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1903,10 +1933,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2026,30 +2059,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2120,6 +2159,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2132,6 +2172,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2194,6 +2235,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2355,8 +2397,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 33376 - i32.const 33424 + i32.const 33440 + i32.const 33488 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2426,7 +2468,7 @@ local.get $1 else i32.const 464 - i32.const 528 + i32.const 592 i32.const 8 i32.const 13 call $~lib/builtins/abort diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index fb0b2c31f0..3c3eac244c 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -17,7 +17,7 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34376)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34440)) (memory $0 1) (data (i32.const 1036) "<") (data (i32.const 1048) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") @@ -31,11 +31,11 @@ (data (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") (data (i32.const 1436) "\1c") (data (i32.const 1448) "\02\00\00\00\08\00\00\00t\00e\00s\00t") - (data (i32.const 1468) "<") - (data (i32.const 1480) "\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l") - (data (i32.const 1532) ",") - (data (i32.const 1544) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s") - (data (i32.const 1584) "\05\00\00\00 \00\00\00 \00\00\00 ") + (data (i32.const 1468) "|") + (data (i32.const 1480) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") + (data (i32.const 1596) ",") + (data (i32.const 1608) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s") + (data (i32.const 1648) "\05\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (type $none_=>_none) @@ -118,7 +118,7 @@ i32.load $0 offset=8 i32.eqz local.get $0 - i32.const 34376 + i32.const 34440 i32.lt_u i32.and i32.eqz @@ -167,7 +167,7 @@ i32.const 1 else local.get $1 - i32.const 1584 + i32.const 1648 i32.load $0 i32.gt_u if @@ -181,7 +181,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 1588 + i32.const 1652 i32.add i32.load $0 i32.const 32 @@ -746,10 +746,10 @@ if unreachable end - i32.const 34384 + i32.const 34448 i32.const 0 i32.store $0 - i32.const 35952 + i32.const 36016 i32.const 0 i32.store $0 loop $for-loop|0 @@ -760,7 +760,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 34384 + i32.const 34448 i32.add i32.const 0 i32.store $0 offset=4 @@ -778,7 +778,7 @@ i32.add i32.const 2 i32.shl - i32.const 34384 + i32.const 34448 i32.add i32.const 0 i32.store $0 offset=96 @@ -796,13 +796,13 @@ br $for-loop|0 end end - i32.const 34384 - i32.const 35956 + i32.const 34448 + i32.const 36020 memory.size $0 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 34384 + i32.const 34448 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) @@ -887,7 +887,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 34376 + i32.const 34440 i32.lt_u if local.get $0 @@ -987,7 +987,7 @@ unreachable end local.get $0 - i32.const 34376 + i32.const 34440 i32.lt_u if local.get $0 @@ -1010,7 +1010,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 34376 + i32.const 34440 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1596,7 +1596,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1608 + i32.const 1672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1606,7 +1606,7 @@ memory.size $0 i32.const 16 i32.shl - i32.const 34376 + i32.const 34440 i32.sub i32.const 1 i32.shr_u @@ -1640,7 +1640,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1608 + i32.const 1672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1659,7 +1659,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1608 + i32.const 1672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1700,7 +1700,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1608 + i32.const 1672 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1716,7 +1716,7 @@ i32.eqz if i32.const 1488 - i32.const 1552 + i32.const 1616 i32.const 8 i32.const 13 call $~lib/builtins/abort @@ -1738,8 +1738,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 34400 - i32.const 34448 + i32.const 34464 + i32.const 34512 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 2e4e31bb80..09b922011e 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -77,6 +77,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -89,17 +90,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -111,8 +113,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -255,6 +255,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -274,6 +275,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -359,15 +361,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -394,6 +393,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -569,22 +569,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -609,16 +612,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -714,18 +720,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -749,18 +758,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -770,12 +782,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -923,22 +938,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -983,16 +1001,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1047,10 +1068,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1166,6 +1190,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1175,15 +1200,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1244,17 +1267,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1266,22 +1287,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1354,6 +1373,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1414,8 +1434,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1460,8 +1478,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1511,8 +1527,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1594,6 +1608,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1672,6 +1687,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1687,6 +1703,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1777,16 +1794,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1819,16 +1839,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1842,46 +1865,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1918,10 +1948,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2041,30 +2074,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2135,6 +2174,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2147,6 +2187,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2209,6 +2250,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $issues/1225/X#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this @@ -2224,8 +2266,6 @@ i32.load $0 offset=4 ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2236,8 +2276,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2251,8 +2289,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -2425,6 +2461,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + return ) (func $issues/1225/viaThis (type $none_=>_i32) (result i32) (local $0 i32) @@ -2449,6 +2486,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + return ) (func $issues/1225/X#constructor (type $i32_i32_=>_i32) (param $this i32) (param $x i32) (result i32) (local $2 i32) diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index e941f46660..78eedce45f 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_i32 (func_subtype (result i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) @@ -88,6 +88,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34280 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1475,146 +1607,18 @@ local.get $1 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1492 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index 258da2b726..1ea00f4eed 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -64,6 +64,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -76,17 +77,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -98,8 +100,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -242,6 +242,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -261,6 +262,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -346,15 +348,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -381,6 +380,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -556,22 +556,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -596,16 +599,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -701,18 +707,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -736,18 +745,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -757,12 +769,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -910,22 +925,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -970,16 +988,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1034,10 +1055,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1153,6 +1177,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1162,15 +1187,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1231,17 +1254,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1253,22 +1274,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1341,6 +1360,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1401,8 +1421,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1447,8 +1465,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1498,8 +1514,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1581,6 +1595,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1659,6 +1674,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1674,6 +1690,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1764,16 +1781,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1806,16 +1826,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1829,46 +1852,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1905,10 +1935,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2028,30 +2061,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2122,6 +2161,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2134,6 +2174,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2196,6 +2237,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2354,6 +2396,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -2509,6 +2552,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $start:issues/1699 (type $none_=>_none) memory.size $0 @@ -2569,7 +2613,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -2587,8 +2630,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -2674,9 +2715,8 @@ (local $1 i32) (local $2 i32) (local $n i32) - (local $4 i32) (local $testinstance i32) - (local $6 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -2702,20 +2742,20 @@ local.tee $2 i32.const 0 call $issues/1699/MultiAssignmentTest#constructor - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store $0 offset=8 - local.get $6 + local.get $5 call $~lib/array/Array#__set local.get $1 local.get $2 call $~lib/array/Array#__get - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store $0 offset=4 - local.get $6 + local.get $5 call $~lib/array/Array#__set i32.const 0 local.set $n @@ -2724,8 +2764,6 @@ local.get $testinstances call $~lib/array/Array#get:length i32.lt_s - local.set $4 - local.get $4 if global.get $~lib/memory/__stack_pointer i32.const 0 @@ -2994,5 +3032,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) ) diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 383786e450..94c9b26798 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -1662,10 +1662,10 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $issues/1699/MultiAssignmentTest + block $invalid + block $~lib/array/Array + block $issues/1699/MultiAssignmentTest + block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer block $~lib/object/Object @@ -1673,7 +1673,7 @@ i32.const 8 i32.sub i32.load $0 - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $issues/1699/MultiAssignmentTest $~lib/array/Array $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1699/MultiAssignmentTest $~lib/array/Array $invalid end return end @@ -1681,47 +1681,55 @@ end return end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end - local.get $0 - i32.load $0 offset=4 - local.tee $1 - local.get $0 - i32.load $0 offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 + return + end + local.get $0 + i32.load $0 offset=4 + local.tee $1 + local.get $0 + i32.load $0 offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if local.get $1 - local.get $3 - i32.lt_u + i32.load $0 + local.tee $3 if - local.get $1 - i32.load $0 - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - br $folding-inner0 end - unreachable - end - local.get $0 - i32.load $0 - local.tee $0 - if local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end + unreachable ) (func $~start (type $none_=>_none) (local $0 i32) diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index defbea33f4..04bea1a3d3 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -24,16 +24,19 @@ i32.const 8 i32.const 4 i32.eq + return ) (func $issues/1714/foo (type $none_=>_i32) (result i32) call $issues/1714/a_i64_i32 i32.const 1 i32.eq + return ) (func $issues/1714/bar (type $none_=>_i32) (result i32) i32.const 0 drop i32.const 80 + return ) (func $issues/1714/bar (type $none_=>_i32) (result i32) i32.const 1 @@ -52,12 +55,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -128,8 +131,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -158,6 +159,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -200,6 +202,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~start (type $none_=>_none) call $start:issues/1714 diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 825b6f6316..53e6ae7e2b 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -66,6 +66,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -78,17 +79,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -100,8 +102,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -244,6 +244,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -263,6 +264,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -348,15 +350,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -383,6 +382,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -558,22 +558,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -598,16 +601,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -703,18 +709,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -738,18 +747,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -759,12 +771,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -912,22 +927,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -972,16 +990,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1036,10 +1057,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1155,6 +1179,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1164,15 +1189,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1233,17 +1256,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1255,22 +1276,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1343,6 +1362,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1403,8 +1423,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1449,8 +1467,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1500,8 +1516,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1583,6 +1597,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1661,6 +1676,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1676,6 +1692,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1766,16 +1783,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1808,16 +1828,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1831,46 +1854,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1907,10 +1937,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2030,30 +2063,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2124,6 +2163,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2136,6 +2176,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2198,6 +2239,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2210,12 +2252,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2286,8 +2328,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2316,6 +2356,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2358,6 +2399,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 3c410661bc..98209742d1 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -88,6 +88,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34428 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1632 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1636 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1657,146 +1789,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34428 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1632 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1636 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index 91de59a7e6..52f5ad6c6e 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -60,6 +60,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -72,17 +73,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -94,8 +96,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -238,6 +238,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -257,6 +258,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -342,15 +344,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -377,6 +376,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -552,22 +552,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -592,16 +595,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -697,18 +703,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -732,18 +741,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -753,12 +765,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -906,22 +921,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -966,16 +984,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1030,10 +1051,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1149,6 +1173,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1158,15 +1183,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1227,17 +1250,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1249,22 +1270,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1337,6 +1356,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1397,8 +1417,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1443,8 +1461,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1494,8 +1510,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1577,6 +1591,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1655,6 +1670,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1670,6 +1686,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1760,16 +1777,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1802,16 +1822,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1825,46 +1848,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1901,10 +1931,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2024,30 +2057,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2118,6 +2157,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2130,6 +2170,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2192,6 +2233,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $issues/2322/lib/Wrapper#set:v (type $i32_i32_=>_none) (param $this i32) (param $v i32) local.get $this diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index e7cac35cc6..e8b1f66def 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -78,6 +78,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34232 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1440 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1444 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1520,146 +1652,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34232 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1440 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1444 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/localinit.debug.wat b/tests/compiler/localinit.debug.wat new file mode 100644 index 0000000000..1c1137bad5 --- /dev/null +++ b/tests/compiler/localinit.debug.wat @@ -0,0 +1,168 @@ +(module + (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $localinit/initInIf (type $none_=>_none) + (local $a i32) + i32.const 1 + local.tee $a + i32.const 0 + i32.gt_s + drop + local.get $a + drop + local.get $a + drop + ) + (func $localinit/initInIfElse (type $none_=>_none) + (local $a i32) + i32.const 1 + local.tee $a + i32.const 0 + i32.gt_s + drop + local.get $a + drop + local.get $a + drop + ) + (func $localinit/initInIfAnd (type $i32_=>_none) (param $cond i32) + (local $a i32) + (local $b i32) + local.get $cond + if (result i32) + i32.const 0 + local.tee $a + else + i32.const 0 + end + if (result i32) + i32.const 0 + local.tee $b + else + i32.const 0 + end + if + local.get $a + drop + local.get $b + drop + end + ) + (func $localinit/initInIfOr (type $i32_=>_none) (param $cond i32) + (local $a i32) + (local $b i32) + local.get $cond + if (result i32) + i32.const 1 + else + i32.const 0 + local.tee $a + end + if (result i32) + i32.const 1 + else + i32.const 0 + local.tee $b + end + if + return + end + local.get $a + drop + local.get $b + drop + ) + (func $localinit/initInDo (type $i32_=>_none) (param $cond i32) + (local $a i32) + loop $do-loop|0 + i32.const 1 + local.set $a + local.get $cond + br_if $do-loop|0 + end + local.get $a + drop + ) + (func $localinit/initInWhile (type $none_=>_none) + (local $a i32) + block $while-break|0 + loop $while-continue|0 + i32.const 1 + local.tee $a + if + local.get $a + drop + br $while-break|0 + end + end + end + local.get $a + drop + ) + (func $localinit/initInWhileAnd (type $i32_=>_none) (param $cond i32) + (local $a i32) + loop $while-continue|0 + local.get $cond + if (result i32) + i32.const 0 + local.tee $a + else + i32.const 0 + end + if + local.get $a + drop + br $while-continue|0 + end + end + ) + (func $localinit/initInWhileOr (type $i32_=>_none) (param $cond i32) + (local $a i32) + (local $b i32) + loop $while-continue|0 + local.get $cond + if (result i32) + i32.const 1 + else + i32.const 1 + local.tee $a + end + if (result i32) + i32.const 1 + else + i32.const 1 + local.tee $b + end + if + return + end + end + local.get $a + drop + local.get $b + drop + ) + (func $start:localinit (type $none_=>_none) + call $localinit/initInIf + call $localinit/initInIfElse + i32.const 1 + call $localinit/initInIfAnd + i32.const 1 + call $localinit/initInIfOr + i32.const 0 + call $localinit/initInDo + call $localinit/initInWhile + i32.const 1 + call $localinit/initInWhileAnd + i32.const 1 + call $localinit/initInWhileOr + ) + (func $~start (type $none_=>_none) + call $start:localinit + ) +) diff --git a/tests/compiler/localinit.json b/tests/compiler/localinit.json new file mode 100644 index 0000000000..8e0a066281 --- /dev/null +++ b/tests/compiler/localinit.json @@ -0,0 +1,5 @@ +{ + "asc_flags": [ + "--runtime", "stub" + ] +} diff --git a/tests/compiler/localinit.release.wat b/tests/compiler/localinit.release.wat new file mode 100644 index 0000000000..23da3862e2 --- /dev/null +++ b/tests/compiler/localinit.release.wat @@ -0,0 +1,4 @@ +(module + (memory $0 0) + (export "memory" (memory $0)) +) diff --git a/tests/compiler/localinit.ts b/tests/compiler/localinit.ts new file mode 100644 index 0000000000..0eede006ad --- /dev/null +++ b/tests/compiler/localinit.ts @@ -0,0 +1,77 @@ +function initInIf(): void { + let a: i32; + if ((a = 1) > 0) { + a; + } + a; +} +initInIf(); + +function initInIfElse(): void { + let a: i32; + if ((a = 1) > 0) { + a; + } else { + a; + } + a; +} +initInIfElse(); + +function initInIfAnd(cond: bool): void { + let a: i32; + let b: i32; + if (cond && (a = 0) && (b = 0)) { + a; + b; + } +} +initInIfAnd(true); + +function initInIfOr(cond: bool): void { + let a: i32; + let b: i32; + if (cond || (a = 0) || (b = 0)) { + return; + } + a; + b; +} +initInIfOr(true); + +function initInDo(cond: bool): void { + let a: i32; + do a = 1; + while (cond); + a; +} +initInDo(false); + +function initInWhile(): void { + let a: i32; + while (a = 1) { + a; + break; + } + a; +} +initInWhile(); + +function initInWhileAnd(cond: bool): void { + let a: i32; + while (cond && (a = 0)) { + a; + } +} +initInWhileAnd(true); + +function initInWhileOr(cond: bool): void { + let a: i32; + let b: i32; + while (cond || (a = 1) || (b = 1)) { + return; + } + a; + b; +} +initInWhileOr(true); diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index 29ee6a516e..67c7bf41e8 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -56,6 +56,7 @@ else i32.const 0 end + return ) (func $logical/testShortcutOr (type $i64_i32_=>_i32) (param $a i64) (param $b i32) (result i32) local.get $a @@ -66,6 +67,7 @@ else local.get $b end + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -85,6 +87,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -97,17 +100,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -119,8 +123,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -263,6 +265,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -282,6 +285,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -367,15 +371,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -402,6 +403,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -577,22 +579,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -617,16 +622,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -722,18 +730,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -757,18 +768,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -778,12 +792,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -931,22 +948,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -991,16 +1011,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1055,10 +1078,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1174,6 +1200,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1183,15 +1210,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1252,17 +1277,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1274,22 +1297,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1362,6 +1383,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1422,8 +1444,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1468,8 +1488,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1519,8 +1537,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1602,6 +1618,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1680,6 +1697,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1695,6 +1713,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1785,16 +1804,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1827,16 +1849,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1850,46 +1875,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1926,10 +1958,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2049,30 +2084,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2143,6 +2184,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2155,6 +2197,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2217,6 +2260,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $logical/testContextualBoolAnd (type $i32_i32_=>_i32) (param $someObj i32) (param $someInt i32) (result i32) local.get $someObj @@ -2225,6 +2269,7 @@ else i32.const 0 end + return ) (func $logical/testContextualBoolOr (type $i32_i32_=>_i32) (param $someObj i32) (param $someInt i32) (result i32) local.get $someObj @@ -2233,10 +2278,9 @@ else local.get $someInt end + return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2247,8 +2291,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2262,8 +2304,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 185e7217ee..f872da9d51 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -79,6 +79,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34280 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1444,146 +1576,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load $0 - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1492 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/loop-flow.debug.wat b/tests/compiler/loop-flow.debug.wat index 327a96aad5..e5aa933eaf 100644 --- a/tests/compiler/loop-flow.debug.wat +++ b/tests/compiler/loop-flow.debug.wat @@ -26,11 +26,8 @@ (export "memory" (memory $0)) (start $~start) (func $loop-flow/whileReturn (type $none_=>_i32) (result i32) - (local $0 i32) loop $while-continue|0 i32.const 1 - local.set $0 - local.get $0 if i32.const 1 return @@ -39,11 +36,8 @@ unreachable ) (func $loop-flow/whileAny (type $i32_=>_i32) (param $a i32) (result i32) - (local $1 i32) loop $while-continue|0 i32.const 1 - local.set $1 - local.get $1 if local.get $a i32.const 1 @@ -73,24 +67,16 @@ unreachable ) (func $loop-flow/forReturn (type $none_=>_i32) (result i32) - (local $0 i32) - loop $for-loop|0 + i32.const 1 + if i32.const 1 - local.set $0 - local.get $0 - if - i32.const 1 - return - end + return end unreachable ) (func $loop-flow/forAny (type $i32_=>_i32) (param $a i32) (result i32) - (local $1 i32) loop $for-loop|0 i32.const 1 - local.set $1 - local.get $1 if block $for-continue|0 local.get $a @@ -157,8 +143,7 @@ unreachable end i32.const 1 - drop - br $do-loop|0 + br_if $do-loop|0 end unreachable ) @@ -240,11 +225,8 @@ end ) (func $loop-flow/whileThrow (type $none_=>_i32) (result i32) - (local $0 i32) loop $while-continue|0 i32.const 1 - local.set $0 - local.get $0 if i32.const 80 i32.const 32 @@ -257,11 +239,8 @@ unreachable ) (func $loop-flow/whileContinue (type $none_=>_i32) (result i32) - (local $0 i32) loop $while-continue|0 i32.const 1 - local.set $0 - local.get $0 if br $while-continue|0 end @@ -269,28 +248,20 @@ unreachable ) (func $loop-flow/forThrow (type $none_=>_i32) (result i32) - (local $0 i32) - loop $for-loop|0 - i32.const 1 - local.set $0 - local.get $0 - if - i32.const 80 - i32.const 32 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 1 + if + i32.const 80 + i32.const 32 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable end unreachable ) (func $loop-flow/forContinue (type $none_=>_i32) (result i32) - (local $0 i32) loop $for-loop|0 i32.const 1 - local.set $0 - local.get $0 if block $for-continue|0 br $for-continue|0 diff --git a/tests/compiler/loop-flow.release.wat b/tests/compiler/loop-flow.release.wat index be1bb71b7c..e778c24583 100644 --- a/tests/compiler/loop-flow.release.wat +++ b/tests/compiler/loop-flow.release.wat @@ -26,13 +26,11 @@ i32.const 1 ) (func $loop-flow/whileAny (type $i32_=>_i32) (param $0 i32) (result i32) - loop $while-continue|0 (result i32) + loop $while-continue|0 local.get $0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - else + i32.ne + if local.get $0 i32.const 2 i32.eq @@ -49,15 +47,14 @@ unreachable end end + i32.const 1 ) (func $loop-flow/forAny (type $i32_=>_i32) (param $0 i32) (result i32) - loop $for-loop|0 (result i32) + loop $for-loop|0 local.get $0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - else + i32.ne + if local.get $0 i32.const 2 i32.eq @@ -72,13 +69,16 @@ br $for-loop|0 end end + i32.const 1 ) (func $loop-flow/doAny (type $i32_=>_i32) (param $0 i32) (result i32) - loop $do-loop|0 + loop $do-loop|0 (result i32) local.get $0 i32.const 1 - i32.ne - if + i32.eq + if (result i32) + i32.const 1 + else local.get $0 i32.const 2 i32.eq @@ -93,7 +93,6 @@ br $do-loop|0 end end - i32.const 1 ) (func $loop-flow/whileThrow (type $none_=>_i32) (result i32) i32.const 1104 diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index b98ea6d082..242644deb4 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -23,10 +23,10 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 608)) - (global $~lib/memory/__data_end i32 (i32.const 636)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33404)) - (global $~lib/memory/__heap_base i32 (i32.const 33404)) + (global $~lib/rt/__rtti_base i32 (i32.const 672)) + (global $~lib/memory/__data_end i32 (i32.const 700)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33468)) + (global $~lib/memory/__heap_base i32 (i32.const 33468)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") (data (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") @@ -36,10 +36,10 @@ (data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") (data (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 608) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") + (data (i32.const 412) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 604) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 672) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -62,6 +62,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -74,17 +75,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -96,8 +98,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -240,6 +240,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -259,6 +260,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -344,15 +346,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -379,6 +378,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -554,22 +554,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -594,16 +597,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -699,18 +705,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -734,18 +743,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -755,12 +767,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -908,22 +923,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -968,16 +986,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1032,10 +1053,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1151,6 +1175,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1160,15 +1185,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1229,17 +1252,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1251,22 +1272,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1339,6 +1358,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1399,8 +1419,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1445,8 +1463,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1496,8 +1512,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1579,6 +1593,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1657,6 +1672,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1672,6 +1688,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1762,16 +1779,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1804,16 +1824,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1827,46 +1850,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1903,10 +1933,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2026,30 +2059,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2120,6 +2159,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2132,6 +2172,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2194,6 +2235,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $managed-cast/Animal#tame (type $i32_=>_none) (param $this i32) nop @@ -2243,8 +2285,8 @@ if (result i32) local.get $1 else + i32.const 624 i32.const 560 - i32.const 496 i32.const 41 i32.const 30 call $~lib/builtins/abort @@ -2285,8 +2327,8 @@ if (result i32) local.get $1 else + i32.const 624 i32.const 560 - i32.const 496 i32.const 47 i32.const 30 call $~lib/builtins/abort @@ -2306,8 +2348,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2318,8 +2358,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2333,8 +2371,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -2439,8 +2475,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 33424 - i32.const 33472 + i32.const 33488 + i32.const 33536 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2464,7 +2500,7 @@ local.get $1 else i32.const 432 - i32.const 496 + i32.const 560 i32.const 14 i32.const 12 call $~lib/builtins/abort @@ -2498,8 +2534,8 @@ if (result i32) local.get $1 else + i32.const 624 i32.const 560 - i32.const 496 i32.const 31 i32.const 9 call $~lib/builtins/abort @@ -2535,7 +2571,7 @@ local.get $1 else i32.const 432 - i32.const 496 + i32.const 560 i32.const 36 i32.const 9 call $~lib/builtins/abort @@ -2548,8 +2584,8 @@ if (result i32) local.get $2 else + i32.const 624 i32.const 560 - i32.const 496 i32.const 36 i32.const 9 call $~lib/builtins/abort diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 34216ecf70..36404dd0e6 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -17,7 +17,7 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34428)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34492)) (memory $0 1) (data (i32.const 1036) "<") (data (i32.const 1048) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") @@ -29,13 +29,13 @@ (data (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data (i32.const 1372) "<") (data (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 1436) "<") - (data (i32.const 1448) "\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l") - (data (i32.const 1500) "<") - (data (i32.const 1512) "\02\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s") + (data (i32.const 1436) "|") + (data (i32.const 1448) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") (data (i32.const 1564) "<") - (data (i32.const 1576) "\02\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t") - (data (i32.const 1632) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") + (data (i32.const 1576) "\02\00\00\00\1e\00\00\00m\00a\00n\00a\00g\00e\00d\00-\00c\00a\00s\00t\00.\00t\00s") + (data (i32.const 1628) "<") + (data (i32.const 1640) "\02\00\00\00 \00\00\00i\00n\00v\00a\00l\00i\00d\00 \00d\00o\00w\00n\00c\00a\00s\00t") + (data (i32.const 1696) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots (type $none_=>_none) @@ -83,6 +83,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34492 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1696 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1700 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -614,10 +746,10 @@ if unreachable end - i32.const 34432 + i32.const 34496 i32.const 0 i32.store $0 - i32.const 36000 + i32.const 36064 i32.const 0 i32.store $0 loop $for-loop|0 @@ -628,7 +760,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 34432 + i32.const 34496 i32.add i32.const 0 i32.store $0 offset=4 @@ -646,7 +778,7 @@ i32.add i32.const 2 i32.shl - i32.const 34432 + i32.const 34496 i32.add i32.const 0 i32.store $0 offset=96 @@ -664,13 +796,13 @@ br $for-loop|0 end end - i32.const 34432 - i32.const 36004 + i32.const 34496 + i32.const 36068 memory.size $0 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 34432 + i32.const 34496 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) @@ -755,7 +887,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 34428 + i32.const 34492 i32.lt_u if local.get $0 @@ -855,7 +987,7 @@ unreachable end local.get $0 - i32.const 34428 + i32.const 34492 i32.lt_u if local.get $0 @@ -878,7 +1010,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 34428 + i32.const 34492 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1274,7 +1406,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1283,7 +1415,7 @@ memory.size $0 i32.const 16 i32.shl - i32.const 34428 + i32.const 34492 i32.sub i32.const 1 i32.shr_u @@ -1327,7 +1459,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1337,7 +1469,7 @@ i32.eqz if i32.const 1456 - i32.const 1520 + i32.const 1584 i32.const 14 i32.const 12 call $~lib/builtins/abort @@ -1371,7 +1503,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1384,8 +1516,8 @@ i32.const 4 i32.ne if + i32.const 1648 i32.const 1584 - i32.const 1520 i32.const 31 i32.const 9 call $~lib/builtins/abort @@ -1409,7 +1541,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1421,7 +1553,7 @@ i32.eqz if i32.const 1456 - i32.const 1520 + i32.const 1584 i32.const 36 i32.const 9 call $~lib/builtins/abort @@ -1443,8 +1575,8 @@ end i32.eqz if + i32.const 1648 i32.const 1584 - i32.const 1520 i32.const 36 i32.const 9 call $~lib/builtins/abort @@ -1468,7 +1600,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1482,8 +1614,8 @@ i32.const 4 i32.ne if + i32.const 1648 i32.const 1584 - i32.const 1520 i32.const 41 i32.const 30 call $~lib/builtins/abort @@ -1506,7 +1638,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1522,8 +1654,8 @@ i32.const 4 i32.ne if + i32.const 1648 i32.const 1584 - i32.const 1520 i32.const 47 i32.const 30 call $~lib/builtins/abort @@ -1540,7 +1672,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 34428 + i32.const 34492 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -1581,8 +1713,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 34448 - i32.const 34496 + i32.const 34512 + i32.const 34560 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -1598,7 +1730,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1616,7 +1748,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1637,7 +1769,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1660 + i32.const 1724 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -1673,154 +1805,26 @@ local.get $0 return end - i32.const 34448 - i32.const 34496 + i32.const 34512 + i32.const 34560 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34428 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1632 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1636 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/many-locals.debug.wat b/tests/compiler/many-locals.debug.wat index a300cb64ad..d7a44bfb9c 100644 --- a/tests/compiler/many-locals.debug.wat +++ b/tests/compiler/many-locals.debug.wat @@ -400,6 +400,7 @@ local.get $a7E local.set $a7F local.get $a7F + return ) (func $many-locals/testI8 (type $i32_=>_i32) (param $a i32) (result i32) (local $a00 i32) @@ -788,6 +789,7 @@ local.set $a7F local.get $a7F i32.extend8_s + return ) (func $start:many-locals (type $none_=>_none) i32.const 42 diff --git a/tests/compiler/memcpy.debug.wat b/tests/compiler/memcpy.debug.wat index 2c5bfa9fcc..6391a363e0 100644 --- a/tests/compiler/memcpy.debug.wat +++ b/tests/compiler/memcpy.debug.wat @@ -98,11 +98,6 @@ (local $82 i32) (local $83 i32) (local $84 i32) - (local $85 i32) - (local $86 i32) - (local $87 i32) - (local $88 i32) - (local $89 i32) local.get $dest local.set $ret loop $while-continue|0 @@ -114,21 +109,19 @@ else i32.const 0 end - local.set $6 - local.get $6 if local.get $dest - local.tee $7 + local.tee $6 i32.const 1 i32.add local.set $dest - local.get $7 + local.get $6 local.get $src - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $src - local.get $8 + local.get $7 i32.load8_u $0 i32.store8 $0 local.get $n @@ -148,8 +141,6 @@ local.get $n i32.const 16 i32.ge_u - local.set $9 - local.get $9 if local.get $dest local.get $src @@ -258,17 +249,17 @@ i32.and if local.get $dest - local.tee $10 + local.tee $8 i32.const 1 i32.add local.set $dest - local.get $10 + local.get $8 local.get $src - local.tee $11 + local.tee $9 i32.const 1 i32.add local.set $src - local.get $11 + local.get $9 i32.load8_u $0 i32.store8 $0 end @@ -286,16 +277,16 @@ local.get $dest i32.const 4 i32.rem_u - local.set $12 - local.get $12 + local.set $10 + local.get $10 i32.const 1 i32.eq br_if $case0|2 - local.get $12 + local.get $10 i32.const 2 i32.eq br_if $case1|2 - local.get $12 + local.get $10 i32.const 3 i32.eq br_if $case2|2 @@ -305,45 +296,45 @@ i32.load $0 local.set $w local.get $dest - local.tee $13 + local.tee $11 i32.const 1 i32.add local.set $dest - local.get $13 + local.get $11 local.get $src - local.tee $14 + local.tee $12 i32.const 1 i32.add local.set $src - local.get $14 + local.get $12 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $15 + local.tee $13 i32.const 1 i32.add local.set $dest - local.get $15 + local.get $13 local.get $src - local.tee $16 + local.tee $14 i32.const 1 i32.add local.set $src - local.get $16 + local.get $14 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $17 + local.tee $15 i32.const 1 i32.add local.set $dest - local.get $17 + local.get $15 local.get $src - local.tee $18 + local.tee $16 i32.const 1 i32.add local.set $src - local.get $18 + local.get $16 i32.load8_u $0 i32.store8 $0 local.get $n @@ -354,8 +345,6 @@ local.get $n i32.const 17 i32.ge_u - local.set $19 - local.get $19 if local.get $src i32.const 1 @@ -440,31 +429,31 @@ i32.load $0 local.set $w local.get $dest - local.tee $20 + local.tee $17 i32.const 1 i32.add local.set $dest - local.get $20 + local.get $17 local.get $src - local.tee $21 + local.tee $18 i32.const 1 i32.add local.set $src - local.get $21 + local.get $18 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $22 + local.tee $19 i32.const 1 i32.add local.set $dest - local.get $22 + local.get $19 local.get $src - local.tee $23 + local.tee $20 i32.const 1 i32.add local.set $src - local.get $23 + local.get $20 i32.load8_u $0 i32.store8 $0 local.get $n @@ -475,8 +464,6 @@ local.get $n i32.const 18 i32.ge_u - local.set $24 - local.get $24 if local.get $src i32.const 2 @@ -561,17 +548,17 @@ i32.load $0 local.set $w local.get $dest - local.tee $25 + local.tee $21 i32.const 1 i32.add local.set $dest - local.get $25 + local.get $21 local.get $src - local.tee $26 + local.tee $22 i32.const 1 i32.add local.set $src - local.get $26 + local.get $22 i32.load8_u $0 i32.store8 $0 local.get $n @@ -582,8 +569,6 @@ local.get $n i32.const 19 i32.ge_u - local.set $27 - local.get $27 if local.get $src i32.const 3 @@ -670,227 +655,227 @@ i32.and if local.get $dest - local.tee $28 + local.tee $23 i32.const 1 i32.add local.set $dest - local.get $28 + local.get $23 local.get $src - local.tee $29 + local.tee $24 i32.const 1 i32.add local.set $src - local.get $29 + local.get $24 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $30 + local.tee $25 i32.const 1 i32.add local.set $dest - local.get $30 + local.get $25 local.get $src - local.tee $31 + local.tee $26 i32.const 1 i32.add local.set $src - local.get $31 + local.get $26 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $32 + local.tee $27 i32.const 1 i32.add local.set $dest - local.get $32 + local.get $27 local.get $src - local.tee $33 + local.tee $28 i32.const 1 i32.add local.set $src - local.get $33 + local.get $28 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $34 + local.tee $29 i32.const 1 i32.add local.set $dest - local.get $34 + local.get $29 local.get $src - local.tee $35 + local.tee $30 i32.const 1 i32.add local.set $src - local.get $35 + local.get $30 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $36 + local.tee $31 i32.const 1 i32.add local.set $dest - local.get $36 + local.get $31 local.get $src - local.tee $37 + local.tee $32 i32.const 1 i32.add local.set $src - local.get $37 + local.get $32 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $38 + local.tee $33 i32.const 1 i32.add local.set $dest - local.get $38 + local.get $33 local.get $src - local.tee $39 + local.tee $34 i32.const 1 i32.add local.set $src - local.get $39 + local.get $34 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $40 + local.tee $35 i32.const 1 i32.add local.set $dest - local.get $40 + local.get $35 local.get $src - local.tee $41 + local.tee $36 i32.const 1 i32.add local.set $src - local.get $41 + local.get $36 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $42 + local.tee $37 i32.const 1 i32.add local.set $dest - local.get $42 + local.get $37 local.get $src - local.tee $43 + local.tee $38 i32.const 1 i32.add local.set $src - local.get $43 + local.get $38 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $44 + local.tee $39 i32.const 1 i32.add local.set $dest - local.get $44 + local.get $39 local.get $src - local.tee $45 + local.tee $40 i32.const 1 i32.add local.set $src - local.get $45 + local.get $40 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $46 + local.tee $41 i32.const 1 i32.add local.set $dest - local.get $46 + local.get $41 local.get $src - local.tee $47 + local.tee $42 i32.const 1 i32.add local.set $src - local.get $47 + local.get $42 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $48 + local.tee $43 i32.const 1 i32.add local.set $dest - local.get $48 + local.get $43 local.get $src - local.tee $49 + local.tee $44 i32.const 1 i32.add local.set $src - local.get $49 + local.get $44 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $50 + local.tee $45 i32.const 1 i32.add local.set $dest - local.get $50 + local.get $45 local.get $src - local.tee $51 + local.tee $46 i32.const 1 i32.add local.set $src - local.get $51 + local.get $46 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $52 + local.tee $47 i32.const 1 i32.add local.set $dest - local.get $52 + local.get $47 local.get $src - local.tee $53 + local.tee $48 i32.const 1 i32.add local.set $src - local.get $53 + local.get $48 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $54 + local.tee $49 i32.const 1 i32.add local.set $dest - local.get $54 + local.get $49 local.get $src - local.tee $55 + local.tee $50 i32.const 1 i32.add local.set $src - local.get $55 + local.get $50 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $56 + local.tee $51 i32.const 1 i32.add local.set $dest - local.get $56 + local.get $51 local.get $src - local.tee $57 + local.tee $52 i32.const 1 i32.add local.set $src - local.get $57 + local.get $52 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $58 + local.tee $53 i32.const 1 i32.add local.set $dest - local.get $58 + local.get $53 local.get $src - local.tee $59 + local.tee $54 i32.const 1 i32.add local.set $src - local.get $59 + local.get $54 i32.load8_u $0 i32.store8 $0 end @@ -899,115 +884,115 @@ i32.and if local.get $dest - local.tee $60 + local.tee $55 i32.const 1 i32.add local.set $dest - local.get $60 + local.get $55 local.get $src - local.tee $61 + local.tee $56 i32.const 1 i32.add local.set $src - local.get $61 + local.get $56 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $62 + local.tee $57 i32.const 1 i32.add local.set $dest - local.get $62 + local.get $57 local.get $src - local.tee $63 + local.tee $58 i32.const 1 i32.add local.set $src - local.get $63 + local.get $58 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $64 + local.tee $59 i32.const 1 i32.add local.set $dest - local.get $64 + local.get $59 local.get $src - local.tee $65 + local.tee $60 i32.const 1 i32.add local.set $src - local.get $65 + local.get $60 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $66 + local.tee $61 i32.const 1 i32.add local.set $dest - local.get $66 + local.get $61 local.get $src - local.tee $67 + local.tee $62 i32.const 1 i32.add local.set $src - local.get $67 + local.get $62 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $68 + local.tee $63 i32.const 1 i32.add local.set $dest - local.get $68 + local.get $63 local.get $src - local.tee $69 + local.tee $64 i32.const 1 i32.add local.set $src - local.get $69 + local.get $64 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $70 + local.tee $65 i32.const 1 i32.add local.set $dest - local.get $70 + local.get $65 local.get $src - local.tee $71 + local.tee $66 i32.const 1 i32.add local.set $src - local.get $71 + local.get $66 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $72 + local.tee $67 i32.const 1 i32.add local.set $dest - local.get $72 + local.get $67 local.get $src - local.tee $73 + local.tee $68 i32.const 1 i32.add local.set $src - local.get $73 + local.get $68 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $74 + local.tee $69 i32.const 1 i32.add local.set $dest - local.get $74 + local.get $69 local.get $src - local.tee $75 + local.tee $70 i32.const 1 i32.add local.set $src - local.get $75 + local.get $70 i32.load8_u $0 i32.store8 $0 end @@ -1016,59 +1001,59 @@ i32.and if local.get $dest - local.tee $76 + local.tee $71 i32.const 1 i32.add local.set $dest - local.get $76 + local.get $71 local.get $src - local.tee $77 + local.tee $72 i32.const 1 i32.add local.set $src - local.get $77 + local.get $72 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $78 + local.tee $73 i32.const 1 i32.add local.set $dest - local.get $78 + local.get $73 local.get $src - local.tee $79 + local.tee $74 i32.const 1 i32.add local.set $src - local.get $79 + local.get $74 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $80 + local.tee $75 i32.const 1 i32.add local.set $dest - local.get $80 + local.get $75 local.get $src - local.tee $81 + local.tee $76 i32.const 1 i32.add local.set $src - local.get $81 + local.get $76 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $82 + local.tee $77 i32.const 1 i32.add local.set $dest - local.get $82 + local.get $77 local.get $src - local.tee $83 + local.tee $78 i32.const 1 i32.add local.set $src - local.get $83 + local.get $78 i32.load8_u $0 i32.store8 $0 end @@ -1077,31 +1062,31 @@ i32.and if local.get $dest - local.tee $84 + local.tee $79 i32.const 1 i32.add local.set $dest - local.get $84 + local.get $79 local.get $src - local.tee $85 + local.tee $80 i32.const 1 i32.add local.set $src - local.get $85 + local.get $80 i32.load8_u $0 i32.store8 $0 local.get $dest - local.tee $86 + local.tee $81 i32.const 1 i32.add local.set $dest - local.get $86 + local.get $81 local.get $src - local.tee $87 + local.tee $82 i32.const 1 i32.add local.set $src - local.get $87 + local.get $82 i32.load8_u $0 i32.store8 $0 end @@ -1110,21 +1095,22 @@ i32.and if local.get $dest - local.tee $88 + local.tee $83 i32.const 1 i32.add local.set $dest - local.get $88 + local.get $83 local.get $src - local.tee $89 + local.tee $84 i32.const 1 i32.add local.set $src - local.get $89 + local.get $84 i32.load8_u $0 i32.store8 $0 end local.get $ret + return ) (func $start:memcpy (type $none_=>_none) global.get $memcpy/base diff --git a/tests/compiler/memmove.debug.wat b/tests/compiler/memmove.debug.wat index 3763257d0a..1ba594c44b 100644 --- a/tests/compiler/memmove.debug.wat +++ b/tests/compiler/memmove.debug.wat @@ -20,12 +20,6 @@ (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 $dest local.set $ret local.get $dest @@ -51,8 +45,6 @@ local.get $dest i32.const 8 i32.rem_u - local.set $4 - local.get $4 if local.get $n i32.eqz @@ -65,17 +57,17 @@ i32.sub local.set $n local.get $dest - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $dest - local.get $5 + local.get $4 local.get $src - local.tee $6 + local.tee $5 i32.const 1 i32.add local.set $src - local.get $6 + local.get $5 i32.load8_u $0 i32.store8 $0 br $while-continue|0 @@ -85,8 +77,6 @@ local.get $n i32.const 8 i32.ge_u - local.set $7 - local.get $7 if local.get $dest local.get $src @@ -110,21 +100,19 @@ end loop $while-continue|2 local.get $n - local.set $8 - local.get $8 if local.get $dest - local.tee $9 + local.tee $6 i32.const 1 i32.add local.set $dest - local.get $9 + local.get $6 local.get $src - local.tee $10 + local.tee $7 i32.const 1 i32.add local.set $src - local.get $10 + local.get $7 i32.load8_u $0 i32.store8 $0 local.get $n @@ -149,8 +137,6 @@ i32.add i32.const 8 i32.rem_u - local.set $11 - local.get $11 if local.get $n i32.eqz @@ -176,8 +162,6 @@ local.get $n i32.const 8 i32.ge_u - local.set $12 - local.get $12 if local.get $n i32.const 8 @@ -197,8 +181,6 @@ end loop $while-continue|5 local.get $n - local.set $13 - local.get $13 if local.get $dest local.get $n @@ -216,6 +198,7 @@ end end local.get $ret + return ) (func $start:memmove (type $none_=>_none) global.get $memmove/base diff --git a/tests/compiler/memory.debug.wat b/tests/compiler/memory.debug.wat index 5cd823a88c..c36330b530 100644 --- a/tests/compiler/memory.debug.wat +++ b/tests/compiler/memory.debug.wat @@ -48,21 +48,27 @@ i32.add i32.store $0 local.get $value + return ) (func $memory/testGeneric (type $none_=>_i32) (result i32) i32.const 144 + return ) (func $memory/testGeneric (type $none_=>_i32) (result i32) i32.const 152 + return ) (func $memory/testGeneric (type $none_=>_i32) (result i32) i32.const 156 + return ) (func $memory/testGeneric (type $none_=>_i32) (result i32) i32.const 158 + return ) (func $memory/testGeneric (type $none_=>_i32) (result i32) i32.const 159 + return ) (func $start:memory (type $none_=>_none) call $memory/test diff --git a/tests/compiler/memset.debug.wat b/tests/compiler/memset.debug.wat index f009dc65de..7277b5d2da 100644 --- a/tests/compiler/memset.debug.wat +++ b/tests/compiler/memset.debug.wat @@ -18,7 +18,6 @@ (local $k i32) (local $c32 i32) (local $c64 i64) - (local $7 i32) local.get $dest local.set $ret local.get $n @@ -242,8 +241,6 @@ local.get $n i32.const 32 i32.ge_u - local.set $7 - local.get $7 if local.get $dest local.get $c64 @@ -275,6 +272,7 @@ end end local.get $ret + return ) (func $start:memset (type $none_=>_none) global.get $~lib/memory/__heap_base diff --git a/tests/compiler/named-export-default.debug.wat b/tests/compiler/named-export-default.debug.wat index 13a93967c7..a8e8046165 100644 --- a/tests/compiler/named-export-default.debug.wat +++ b/tests/compiler/named-export-default.debug.wat @@ -10,5 +10,6 @@ (export "memory" (memory $0)) (func $named-export-default/get3 (type $none_=>_i32) (result i32) i32.const 3 + return ) ) diff --git a/tests/compiler/named-import-default.debug.wat b/tests/compiler/named-import-default.debug.wat index 6a29f7c377..ff44e8bf48 100644 --- a/tests/compiler/named-import-default.debug.wat +++ b/tests/compiler/named-import-default.debug.wat @@ -10,8 +10,10 @@ (export "memory" (memory $0)) (func $named-export-default/get3 (type $none_=>_i32) (result i32) i32.const 3 + return ) (func $named-import-default/getValue (type $none_=>_i32) (result i32) call $named-export-default/get3 + return ) ) diff --git a/tests/compiler/namespace.debug.wat b/tests/compiler/namespace.debug.wat index da2d2bfb7d..33508a9876 100644 --- a/tests/compiler/namespace.debug.wat +++ b/tests/compiler/namespace.debug.wat @@ -17,9 +17,11 @@ (start $~start) (func $namespace/Outer.Inner.aFunc (type $none_=>_i32) (result i32) global.get $namespace/Outer.Inner.aVar + return ) (func $namespace/Joined.anotherFunc (type $none_=>_i32) (result i32) i32.const 3 + return ) (func $start:namespace (type $none_=>_none) global.get $namespace/Outer.Inner.aVar diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index da97a0dd1c..984fd16dda 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -65,6 +65,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -77,17 +78,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -99,8 +101,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -243,6 +243,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -262,6 +263,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -347,15 +349,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -382,6 +381,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -557,22 +557,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -597,16 +600,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -702,18 +708,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -737,18 +746,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -758,12 +770,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -911,22 +926,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -971,16 +989,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1035,10 +1056,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1154,6 +1178,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1163,15 +1188,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1232,17 +1255,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1254,22 +1275,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1342,6 +1361,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1402,8 +1422,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1448,8 +1466,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1499,8 +1515,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1582,6 +1596,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1660,6 +1675,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1675,6 +1691,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1765,16 +1782,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1807,16 +1827,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1830,46 +1853,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1906,10 +1936,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2029,30 +2062,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2123,6 +2162,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2135,6 +2175,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2197,15 +2238,19 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $new/Ref#get:ref (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $new/Gen#get:gen (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $new/ns.Ref#get:ref (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index 69a8a5465f..af7103962c 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -2,8 +2,8 @@ (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -119,6 +119,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34244 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1440 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1444 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1591,146 +1723,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34244 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1440 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1444 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/new.ts b/tests/compiler/new.ts index 3c70d485bb..6950c27fb2 100644 --- a/tests/compiler/new.ts +++ b/tests/compiler/new.ts @@ -2,7 +2,7 @@ class Ref { get ref(): Ref { return this; } } -var ref: Ref; +var ref: Ref | null; ref = new Ref(); ref = new Ref; ref = new Ref().ref; @@ -11,7 +11,7 @@ class Gen { get gen(): Gen { return this; } } -var gen: Gen; +var gen: Gen | null; gen = new Gen(); gen = new Gen(); gen = new Gen().gen; @@ -22,7 +22,7 @@ namespace ns { } } -var ref2: ns.Ref; +var ref2: ns.Ref | null; ref2 = new ns.Ref(); ref2 = new ns.Ref; ref2 = new ns.Ref().ref; diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index 491af15e8b..c78f35d752 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -70,6 +70,7 @@ call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -82,6 +83,7 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#set:prev (type $i32_i32_=>_none) (param $this i32) (param $prev i32) local.get $this @@ -167,6 +169,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:rtId (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -200,6 +203,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -219,6 +223,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -356,7 +361,6 @@ (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -368,8 +372,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -438,15 +440,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -473,6 +472,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -648,22 +648,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -688,16 +691,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -793,18 +799,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -828,18 +837,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -849,12 +861,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1002,22 +1017,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1062,16 +1080,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1126,10 +1147,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1245,6 +1269,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1254,15 +1279,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1323,17 +1346,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1345,22 +1366,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1433,6 +1452,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1493,8 +1513,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1539,8 +1557,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1590,8 +1606,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1673,6 +1687,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1751,6 +1766,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1766,6 +1782,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1856,16 +1873,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1898,16 +1918,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1921,46 +1944,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1997,10 +2027,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2120,30 +2153,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2214,6 +2253,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2226,6 +2266,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2288,6 +2329,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $object-literal/Managed#get:bar (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2308,12 +2350,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2384,8 +2426,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2414,6 +2454,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2456,6 +2497,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $object-literal/Unmanaged#set:bar (type $i32_i32_=>_none) (param $this i32) (param $bar i32) local.get $this @@ -2963,8 +3005,6 @@ i32.load $0 offset=36 ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2975,8 +3015,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2990,8 +3028,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -4046,6 +4082,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $22 + return ) (func $object-literal/OmittedTypes#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index a9f4940259..4100107c86 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -1935,33 +1935,33 @@ i32.load $0 i32.const 1 i32.shr_u - local.tee $0 - local.get $0 + local.tee $3 + local.get $3 i32.const 5 i32.gt_u select - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.le_s select i32.const 1 i32.shl - local.set $3 + local.set $1 block $__inlined_func$~lib/string/String#substring - local.get $1 + local.get $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.ge_s select i32.const 1 i32.shl - local.tee $4 - local.get $3 + local.tee $0 + local.get $1 i32.sub - local.tee $1 + local.tee $4 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -1972,10 +1972,10 @@ local.set $0 br $__inlined_func$~lib/string/String#substring end - local.get $3 + local.get $1 i32.eqz - local.get $4 local.get $0 + local.get $3 i32.const 1 i32.shl i32.eq @@ -1990,16 +1990,16 @@ br $__inlined_func$~lib/string/String#substring end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 2 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 local.get $0 - local.get $3 + local.get $1 i32.const 1056 i32.add - local.get $1 + local.get $4 memory.copy $0 $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2545,9 +2545,10 @@ i32.const 0 i32.store $0 offset=32 global.get $~lib/memory/__stack_pointer + local.tee $0 local.get $1 i32.store $0 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2811,25 +2812,6 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) (func $byn-split-outlined-A$~lib/rt/itcms/__link (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) local.get $0 i32.eqz @@ -2879,4 +2861,23 @@ end end ) + (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) ) diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index fd185638c9..ec01a9c1b1 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -48,9 +48,11 @@ (start $~start) (func $optional-typeparameters/testConcrete (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $optional-typeparameters/testDerived (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -70,6 +72,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -82,17 +85,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -104,8 +108,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -248,6 +250,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -267,6 +270,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -352,15 +356,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -387,6 +388,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -562,22 +564,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -602,16 +607,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -707,18 +715,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -742,18 +753,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -763,12 +777,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -916,22 +933,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -976,16 +996,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1040,10 +1063,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1159,6 +1185,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1168,15 +1195,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1237,17 +1262,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1259,22 +1282,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1347,6 +1368,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1407,8 +1429,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1453,8 +1473,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1504,8 +1522,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1587,6 +1603,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1665,6 +1682,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1680,6 +1698,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1770,16 +1789,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1812,16 +1834,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1835,46 +1860,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1911,10 +1943,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2034,30 +2069,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2128,6 +2169,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2140,6 +2182,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2202,16 +2245,19 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $optional-typeparameters/TestConcrete#test (type $i32_i32_i32_=>_i32) (param $this i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add + return ) (func $optional-typeparameters/TestDerived#test (type $i32_f64_f64_=>_f64) (param $this i32) (param $a f64) (param $b f64) (result f64) local.get $a local.get $b f64.add + return ) (func $optional-typeparameters/TestMethodDerived<~lib/string/String>#test<~lib/array/Array<~lib/string/String>> (type $i32_=>_none) (param $this i32) i32.const 7 @@ -2292,7 +2338,6 @@ (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -2310,8 +2355,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index e03386be8f..8e90a5aee4 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -105,6 +105,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34248 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1440 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1444 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1256,13 +1388,13 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner0 - block $invalid - block $optional-typeparameters/TestMethodDerived2 - block $~lib/array/Array<~lib/string/String> - block $optional-typeparameters/TestMethodDerived<~lib/string/String> - block $optional-typeparameters/TestDerived - block $optional-typeparameters/TestConcrete + block $invalid + block $optional-typeparameters/TestMethodDerived2 + block $~lib/array/Array<~lib/string/String> + block $optional-typeparameters/TestMethodDerived<~lib/string/String> + block $optional-typeparameters/TestDerived + block $optional-typeparameters/TestConcrete + block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer block $~lib/object/Object @@ -1270,7 +1402,7 @@ i32.const 8 i32.sub i32.load $0 - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $optional-typeparameters/TestConcrete $optional-typeparameters/TestDerived $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $optional-typeparameters/TestConcrete $optional-typeparameters/TestDerived $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid end return end @@ -1278,53 +1410,61 @@ end return end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end return end return end - local.get $0 - i32.load $0 offset=4 - local.tee $1 - local.get $0 - i32.load $0 offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 + return + end + local.get $0 + i32.load $0 offset=4 + local.tee $1 + local.get $0 + i32.load $0 offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if local.get $1 - local.get $3 - i32.lt_u + i32.load $0 + local.tee $3 if - local.get $1 - i32.load $0 - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - br $folding-inner0 + end + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit end return end - unreachable - end - local.get $0 - i32.load $0 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + return end + unreachable ) (func $~start (type $none_=>_none) (local $0 i32) @@ -1548,146 +1688,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34248 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1440 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1444 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 - local.get $0 - local.get $1 local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/possibly-null.debug.wat b/tests/compiler/possibly-null.debug.wat index ca24752009..1d27df7a39 100644 --- a/tests/compiler/possibly-null.debug.wat +++ b/tests/compiler/possibly-null.debug.wat @@ -120,11 +120,8 @@ drop ) (func $possibly-null/testWhile (type $i32_=>_none) (param $a i32) - (local $1 i32) loop $while-continue|0 local.get $a - local.set $1 - local.get $1 if i32.const 0 drop @@ -138,11 +135,8 @@ end ) (func $possibly-null/testWhile2 (type $i32_i32_=>_none) (param $a i32) (param $b i32) - (local $2 i32) loop $while-continue|0 local.get $a - local.set $2 - local.get $2 if i32.const 0 drop @@ -156,11 +150,8 @@ end ) (func $possibly-null/testWhile3 (type $i32_i32_=>_none) (param $a i32) (param $b i32) - (local $2 i32) loop $while-continue|0 local.get $a - local.set $2 - local.get $2 if i32.const 0 drop @@ -177,6 +168,7 @@ ) (func $possibly-null/requireNonNull (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) (func $possibly-null/testLogicalAnd (type $i32_=>_none) (param $a i32) local.get $a diff --git a/tests/compiler/recursive.debug.wat b/tests/compiler/recursive.debug.wat index ad54b46d04..d9811176f0 100644 --- a/tests/compiler/recursive.debug.wat +++ b/tests/compiler/recursive.debug.wat @@ -25,5 +25,6 @@ i32.sub call $recursive/fib i32.add + return ) ) diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index efd75053d3..0f360c6224 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -69,16 +69,19 @@ local.get $a local.get $b i32.add + return ) (func $export/mul (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.mul + return ) (func $exports/add (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add + return ) (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $doors i32) local.get $this @@ -103,6 +106,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -115,17 +119,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -137,8 +142,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -281,6 +284,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -300,6 +304,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -385,15 +390,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -420,6 +422,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -595,22 +598,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -635,16 +641,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -740,18 +749,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -775,18 +787,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -796,12 +811,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -949,22 +967,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1009,16 +1030,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1073,10 +1097,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1192,6 +1219,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1201,15 +1229,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1270,17 +1296,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1292,22 +1316,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1380,6 +1402,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1440,8 +1463,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1486,8 +1507,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1537,8 +1556,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1620,6 +1637,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1698,6 +1716,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1713,6 +1732,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1803,16 +1823,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1845,16 +1868,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1868,46 +1894,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1944,10 +1977,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2067,30 +2103,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2161,6 +2203,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2173,6 +2216,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2235,6 +2279,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $exports/Car#get:doors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2243,11 +2288,13 @@ (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $exports/Car#get:doors + return ) (func $export/sub (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.sub + return ) (func $export-default/theDefault (type $none_=>_none) nop diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index 812714a0b3..f872518e3b 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) @@ -112,6 +112,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34280 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1403,146 +1535,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load $0 - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1492 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index 7314e8d383..332f0ab444 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -62,16 +62,19 @@ local.get $a local.get $b i32.add + return ) (func $export/mul (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.mul + return ) (func $exports/add (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add + return ) (func $exports/Car#set:doors (type $i32_i32_=>_none) (param $this i32) (param $doors i32) local.get $this @@ -96,6 +99,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -108,17 +112,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -130,8 +135,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -274,6 +277,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -293,6 +297,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -378,15 +383,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -413,6 +415,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -588,22 +591,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -628,16 +634,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -733,18 +742,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -768,18 +780,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -789,12 +804,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -942,22 +960,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1002,16 +1023,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1066,10 +1090,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1185,6 +1212,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1194,15 +1222,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1263,17 +1289,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1285,22 +1309,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1373,6 +1395,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1433,8 +1456,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1479,8 +1500,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1530,8 +1549,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1613,6 +1630,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1691,6 +1709,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1706,6 +1725,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1796,16 +1816,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1838,16 +1861,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1861,46 +1887,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1937,10 +1970,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2060,30 +2096,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2154,6 +2196,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2166,6 +2209,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2228,6 +2272,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $exports/Car#get:doors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2236,6 +2281,7 @@ (func $exports/Car#get:numDoors (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $exports/Car#get:doors + return ) (func $export-default/theDefault (type $none_=>_none) nop diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index 1d24e1514c..84f94c71a3 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) @@ -110,6 +110,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34328 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1536 + i32.load $0 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1540 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1458,146 +1590,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34328 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1536 - i32.load $0 - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1540 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index fc3c448602..9f4b25f774 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -80,6 +80,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -92,17 +93,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -114,8 +116,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -258,6 +258,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -277,6 +278,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -362,15 +364,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -397,6 +396,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -572,22 +572,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -612,16 +615,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -717,18 +723,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -752,18 +761,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -773,12 +785,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -926,22 +941,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -986,16 +1004,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1050,10 +1071,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1169,6 +1193,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1178,15 +1203,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1247,17 +1270,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1269,22 +1290,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1357,6 +1376,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1417,8 +1437,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1463,8 +1481,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1514,8 +1530,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1597,6 +1611,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1675,6 +1690,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1690,6 +1706,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1780,16 +1797,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1822,16 +1842,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1845,46 +1868,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1921,10 +1951,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2044,30 +2077,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2138,6 +2177,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2150,6 +2190,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2212,6 +2253,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -2227,6 +2269,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2329,6 +2372,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/util/number/decimalCount32 (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -2386,24 +2430,21 @@ unreachable ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -2462,19 +2503,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 716 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -2502,13 +2543,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -2588,7 +2629,6 @@ unreachable ) (func $~lib/util/number/utoa64_dec_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) (local $t i64) (local $r i32) (local $b i32) @@ -2603,8 +2643,6 @@ local.get $num i64.const 100000000 i64.ge_u - local.set $3 - local.get $3 if local.get $num i64.const 100000000 @@ -2711,13 +2749,10 @@ call $~lib/util/number/utoa32_dec_lut ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -2765,14 +2800,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -2799,8 +2835,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -2821,8 +2855,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -2838,6 +2870,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -2934,6 +2967,7 @@ local.get $this local.get $radix call $~lib/util/number/utoa64 + return ) (func $resolve-access/Container#set:foo (type $i32_i64_=>_none) (param $this i32) (param $foo i64) local.get $this @@ -2948,11 +2982,13 @@ local.get $this call $resolve-access/Container#get:foo i32.wrap_i64 + return ) (func $~lib/number/U32#toString (type $i32_i32_=>_i32) (param $this i32) (param $radix i32) (result i32) local.get $this local.get $radix call $~lib/util/number/utoa32 + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -3149,6 +3185,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/util/number/utoa64 (type $i64_i32_=>_i32) (param $value i64) (param $radix i32) (result i32) (local $out i32) @@ -3335,6 +3372,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $resolve-access/arrayAccess (type $none_=>_i32) (result i32) (local $0 i32) @@ -3368,6 +3406,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -3462,6 +3501,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/util/number/utoa32 (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) (local $out i32) @@ -3608,6 +3648,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $12 + return ) (func $resolve-access/propertyAccess (type $none_=>_i32) (result i32) (local $container i32) @@ -3638,5 +3679,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) ) diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index c52816e626..9ec39b9293 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -108,6 +108,7 @@ else i32.const 64 end + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -120,12 +121,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -196,8 +197,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -226,6 +225,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -268,6 +268,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/util/number/decimalCount32 (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -342,6 +343,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -354,17 +356,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -376,8 +379,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -520,6 +521,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -539,6 +541,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -624,15 +627,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -659,6 +659,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -834,22 +835,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -874,16 +878,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -979,18 +986,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1014,18 +1024,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1035,12 +1048,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1188,22 +1204,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1248,16 +1267,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1312,10 +1334,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1431,6 +1456,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1440,15 +1466,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1509,17 +1533,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1531,22 +1553,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1619,6 +1639,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1679,8 +1700,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1725,8 +1744,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1776,8 +1793,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1859,6 +1874,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1937,6 +1953,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1952,6 +1969,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -2042,16 +2060,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2084,16 +2105,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2107,46 +2131,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2183,10 +2214,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2306,30 +2340,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2400,6 +2440,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2412,6 +2453,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2474,26 +2516,24 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -2552,19 +2592,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 764 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -2592,13 +2632,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -2619,13 +2659,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -2673,14 +2710,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -2707,8 +2745,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -2729,8 +2765,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -2746,6 +2780,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -2842,6 +2877,7 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return ) (func $~lib/math/NativeMath.pow (type $f64_f64_=>_f64) (param $x f64) (param $y f64) (result f64) (local $x|2 f64) @@ -3026,17 +3062,20 @@ i64.ge_u end if - local.get $iy - local.set $u - local.get $u - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740992 - i64.const 1 - i64.sub - i64.ge_u + block $~lib/util/math/zeroinfnan|inlined.0 (result i32) + local.get $iy + local.set $u + local.get $u + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + br $~lib/util/math/zeroinfnan|inlined.0 + end if local.get $iy i64.const 1 @@ -3104,17 +3143,20 @@ f64.mul br $~lib/util/math/pow_lut|inlined.0 end - local.get $ix - local.set $u|10 - local.get $u|10 - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740992 - i64.const 1 - i64.sub - i64.ge_u + block $~lib/util/math/zeroinfnan|inlined.1 (result i32) + local.get $ix + local.set $u|10 + local.get $u|10 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + br $~lib/util/math/zeroinfnan|inlined.1 + end if local.get $x|2 local.get $x|2 @@ -3179,6 +3221,7 @@ br $~lib/util/math/checkint|inlined.0 end i32.const 2 + br $~lib/util/math/checkint|inlined.0 end i32.const 1 i32.eq @@ -3260,6 +3303,7 @@ br $~lib/util/math/checkint|inlined.1 end i32.const 2 + br $~lib/util/math/checkint|inlined.1 end local.set $yint local.get $yint @@ -3352,196 +3396,199 @@ local.set $ix end end - local.get $ix - local.set $ix|17 - local.get $ix|17 - i64.const 4604531861337669632 - i64.sub - local.set $tmp - local.get $tmp - i64.const 52 - i32.const 7 - i64.extend_i32_s - i64.sub - i64.shr_u - i32.const 127 - i64.extend_i32_s - i64.and - i32.wrap_i64 - local.set $i - local.get $tmp - i64.const 52 - i64.shr_s - local.set $k - local.get $ix|17 - local.get $tmp - i64.const 4095 - i64.const 52 - i64.shl - i64.and - i64.sub - local.set $iz - local.get $iz - f64.reinterpret_i64 - local.set $z - local.get $k - f64.convert_i64_s - local.set $kd - i32.const 2384 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 - local.set $invc - i32.const 2384 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 offset=16 - local.set $logc - i32.const 2384 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 offset=24 - local.set $logctail - local.get $iz - i64.const 2147483648 - i64.add - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.set $zhi - local.get $z - local.get $zhi - f64.sub - local.set $zlo - local.get $zhi - local.get $invc - f64.mul - f64.const 1 - f64.sub - local.set $rhi - local.get $zlo - local.get $invc - f64.mul - local.set $rlo - local.get $rhi - local.get $rlo - f64.add - local.set $r - local.get $kd - f64.const 0.6931471805598903 - f64.mul - local.get $logc - f64.add - local.set $t1 - local.get $t1 - local.get $r - f64.add - local.set $t2 - local.get $kd - f64.const 5.497923018708371e-14 - f64.mul - local.get $logctail - f64.add - local.set $lo1 - local.get $t1 - local.get $t2 - f64.sub - local.get $r - f64.add - local.set $lo2 - f64.const -0.5 - local.get $r - f64.mul - local.set $ar - local.get $r - local.get $ar - f64.mul - local.set $ar2 - local.get $r - local.get $ar2 - f64.mul - local.set $ar3 - f64.const -0.5 - local.get $rhi - f64.mul - local.set $arhi - local.get $rhi - local.get $arhi - f64.mul - local.set $arhi2 - local.get $t2 - local.get $arhi2 - f64.add - local.set $hi - local.get $rlo - local.get $ar - local.get $arhi - f64.add - f64.mul - local.set $lo3 - local.get $t2 - local.get $hi - f64.sub - local.get $arhi2 - f64.add - local.set $lo4 - local.get $ar3 - f64.const -0.6666666666666679 - local.get $r - f64.const 0.5000000000000007 - f64.mul - f64.add - local.get $ar2 - f64.const 0.7999999995323976 - local.get $r - f64.const -0.6666666663487739 - f64.mul - f64.add - local.get $ar2 - f64.const -1.142909628459501 - local.get $r - f64.const 1.0000415263675542 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.set $p - local.get $lo1 - local.get $lo2 - f64.add - local.get $lo3 - f64.add - local.get $lo4 - f64.add - local.get $p - f64.add - local.set $lo - local.get $hi - local.get $lo - f64.add - local.set $y|46 - local.get $hi - local.get $y|46 - f64.sub - local.get $lo - f64.add - global.set $~lib/util/math/log_tail - local.get $y|46 + block $~lib/util/math/log_inline|inlined.0 (result f64) + local.get $ix + local.set $ix|17 + local.get $ix|17 + i64.const 4604531861337669632 + i64.sub + local.set $tmp + local.get $tmp + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shr_u + i32.const 127 + i64.extend_i32_s + i64.and + i32.wrap_i64 + local.set $i + local.get $tmp + i64.const 52 + i64.shr_s + local.set $k + local.get $ix|17 + local.get $tmp + i64.const 4095 + i64.const 52 + i64.shl + i64.and + i64.sub + local.set $iz + local.get $iz + f64.reinterpret_i64 + local.set $z + local.get $k + f64.convert_i64_s + local.set $kd + i32.const 2384 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 + local.set $invc + i32.const 2384 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 offset=16 + local.set $logc + i32.const 2384 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 offset=24 + local.set $logctail + local.get $iz + i64.const 2147483648 + i64.add + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $zhi + local.get $z + local.get $zhi + f64.sub + local.set $zlo + local.get $zhi + local.get $invc + f64.mul + f64.const 1 + f64.sub + local.set $rhi + local.get $zlo + local.get $invc + f64.mul + local.set $rlo + local.get $rhi + local.get $rlo + f64.add + local.set $r + local.get $kd + f64.const 0.6931471805598903 + f64.mul + local.get $logc + f64.add + local.set $t1 + local.get $t1 + local.get $r + f64.add + local.set $t2 + local.get $kd + f64.const 5.497923018708371e-14 + f64.mul + local.get $logctail + f64.add + local.set $lo1 + local.get $t1 + local.get $t2 + f64.sub + local.get $r + f64.add + local.set $lo2 + f64.const -0.5 + local.get $r + f64.mul + local.set $ar + local.get $r + local.get $ar + f64.mul + local.set $ar2 + local.get $r + local.get $ar2 + f64.mul + local.set $ar3 + f64.const -0.5 + local.get $rhi + f64.mul + local.set $arhi + local.get $rhi + local.get $arhi + f64.mul + local.set $arhi2 + local.get $t2 + local.get $arhi2 + f64.add + local.set $hi + local.get $rlo + local.get $ar + local.get $arhi + f64.add + f64.mul + local.set $lo3 + local.get $t2 + local.get $hi + f64.sub + local.get $arhi2 + f64.add + local.set $lo4 + local.get $ar3 + f64.const -0.6666666666666679 + local.get $r + f64.const 0.5000000000000007 + f64.mul + f64.add + local.get $ar2 + f64.const 0.7999999995323976 + local.get $r + f64.const -0.6666666663487739 + f64.mul + f64.add + local.get $ar2 + f64.const -1.142909628459501 + local.get $r + f64.const 1.0000415263675542 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $p + local.get $lo1 + local.get $lo2 + f64.add + local.get $lo3 + f64.add + local.get $lo4 + f64.add + local.get $p + f64.add + local.set $lo + local.get $hi + local.get $lo + f64.add + local.set $y|46 + local.get $hi + local.get $y|46 + f64.sub + local.get $lo + f64.add + global.set $~lib/util/math/log_tail + local.get $y|46 + br $~lib/util/math/log_inline|inlined.0 + end local.set $hi|47 global.get $~lib/util/math/log_tail local.set $lo|48 @@ -3621,35 +3668,47 @@ i64.const 0 i64.lt_s if (result f64) - local.get $sign_bias|57 - local.set $sign - local.get $sign - local.set $sign|72 - i64.const 1152921504606846976 - f64.reinterpret_i64 - local.set $y|73 - local.get $y|73 - f64.neg - local.get $y|73 - local.get $sign|72 - select - local.get $y|73 - f64.mul + block $~lib/util/math/uflow|inlined.0 (result f64) + local.get $sign_bias|57 + local.set $sign + block $~lib/util/math/xflow|inlined.0 (result f64) + local.get $sign + local.set $sign|72 + i64.const 1152921504606846976 + f64.reinterpret_i64 + local.set $y|73 + local.get $y|73 + f64.neg + local.get $y|73 + local.get $sign|72 + select + local.get $y|73 + f64.mul + br $~lib/util/math/xflow|inlined.0 + end + br $~lib/util/math/uflow|inlined.0 + end else - local.get $sign_bias|57 - local.set $sign|74 - local.get $sign|74 - local.set $sign|75 - i64.const 8070450532247928832 - f64.reinterpret_i64 - local.set $y|76 - local.get $y|76 - f64.neg - local.get $y|76 - local.get $sign|75 - select - local.get $y|76 - f64.mul + block $~lib/util/math/oflow|inlined.0 (result f64) + local.get $sign_bias|57 + local.set $sign|74 + block $~lib/util/math/xflow|inlined.1 (result f64) + local.get $sign|74 + local.set $sign|75 + i64.const 8070450532247928832 + f64.reinterpret_i64 + local.set $y|76 + local.get $y|76 + f64.neg + local.get $y|76 + local.get $sign|75 + select + local.get $y|76 + f64.mul + br $~lib/util/math/xflow|inlined.1 + end + br $~lib/util/math/oflow|inlined.0 + end end br $~lib/util/math/exp_inline|inlined.0 end @@ -3846,6 +3905,7 @@ local.get $y|81 f64.const 2.2250738585072014e-308 f64.mul + br $~lib/util/math/specialcase|inlined.0 end br $~lib/util/math/exp_inline|inlined.0 end @@ -3857,7 +3917,9 @@ local.get $tmp|69 f64.mul f64.add + br $~lib/util/math/exp_inline|inlined.0 end + br $~lib/util/math/pow_lut|inlined.0 end return ) @@ -3870,32 +3932,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $15 i32) (local $d i32) + (local $16 i32) (local $17 i32) - (local $18 i32) (local $tmp i64) - (local $buffer|20 i32) - (local $len|21 i32) - (local $delta|22 i64) + (local $buffer|19 i32) + (local $len|20 i32) + (local $delta|21 i64) (local $rest i64) (local $ten_kappa i64) (local $wp_w i64) (local $lastp i32) (local $digit i32) + (local $d|27 i64) (local $28 i32) - (local $29 i32) - (local $d|30 i64) - (local $31 i32) - (local $buffer|32 i32) - (local $len|33 i32) - (local $delta|34 i64) - (local $rest|35 i64) - (local $ten_kappa|36 i64) - (local $wp_w|37 i64) - (local $lastp|38 i32) - (local $digit|39 i32) - (local $40 i32) + (local $buffer|29 i32) + (local $len|30 i32) + (local $delta|31 i64) + (local $rest|32 i64) + (local $ten_kappa|33 i64) + (local $wp_w|34 i64) + (local $lastp|35 i32) + (local $digit|36 i32) i32.const 0 local.get $mp_exp i32.sub @@ -3932,8 +3990,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $15 - local.get $15 if block $break|1 block $case10|1 @@ -3948,44 +4004,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $17 - local.get $17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -4097,11 +4153,11 @@ if local.get $buffer local.get $len - local.tee $18 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $18 + local.get $17 i32.const 1 i32.shl i32.add @@ -4133,11 +4189,11 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $buffer|20 + local.set $buffer|19 local.get $len - local.set $len|21 + local.set $len|20 local.get $delta - local.set $delta|22 + local.set $delta|21 local.get $tmp local.set $rest i32.const 9632 @@ -4152,8 +4208,8 @@ local.set $ten_kappa local.get $wp_w_frc local.set $wp_w - local.get $buffer|20 - local.get $len|21 + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 @@ -4168,7 +4224,7 @@ local.get $wp_w i64.lt_u if (result i32) - local.get $delta|22 + local.get $delta|21 local.get $rest i64.sub local.get $ten_kappa @@ -4198,8 +4254,6 @@ else i32.const 0 end - local.set $28 - local.get $28 if local.get $digit i32.const 1 @@ -4223,8 +4277,6 @@ end loop $while-continue|4 i32.const 1 - local.set $29 - local.get $29 if local.get $p2 i64.const 10 @@ -4238,8 +4290,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d|30 - local.get $d|30 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -4248,16 +4300,16 @@ if local.get $buffer local.get $len - local.tee $31 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $31 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d|30 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and @@ -4292,79 +4344,77 @@ i64.mul local.set $wp_w_frc local.get $buffer - local.set $buffer|32 + local.set $buffer|29 local.get $len - local.set $len|33 + local.set $len|30 local.get $delta - local.set $delta|34 + local.set $delta|31 local.get $p2 - local.set $rest|35 + local.set $rest|32 local.get $one_frc - local.set $ten_kappa|36 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $wp_w|37 - local.get $buffer|32 - local.get $len|33 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $lastp|38 - local.get $lastp|38 + local.set $lastp|35 + local.get $lastp|35 i32.load16_u $0 - local.set $digit|39 + local.set $digit|36 loop $while-continue|6 - local.get $rest|35 - local.get $wp_w|37 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $delta|34 - local.get $rest|35 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $ten_kappa|36 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $wp_w|37 - local.get $rest|35 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $40 - local.get $40 if - local.get $digit|39 + local.get $digit|36 i32.const 1 i32.sub - local.set $digit|39 - local.get $rest|35 - local.get $ten_kappa|36 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $rest|35 + local.set $rest|32 br $while-continue|6 end end - local.get $lastp|38 - local.get $digit|39 + local.get $lastp|35 + local.get $digit|36 i32.store16 $0 local.get $len return @@ -4377,26 +4427,24 @@ (func $~lib/util/number/prettify (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) (local $i i32) - (local $5 i32) (local $ptr i32) (local $offset i32) - (local $i|8 i32) - (local $9 i32) - (local $buffer|10 i32) - (local $k|11 i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) (local $sign i32) (local $decimals i32) - (local $buffer|14 i32) + (local $buffer|12 i32) (local $num i32) - (local $offset|16 i32) + (local $offset|14 i32) (local $len i32) - (local $buffer|18 i32) - (local $k|19 i32) - (local $sign|20 i32) - (local $decimals|21 i32) - (local $buffer|22 i32) - (local $num|23 i32) - (local $offset|24 i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -4437,8 +4485,6 @@ local.get $i local.get $kk i32.lt_s - local.set $5 - local.get $5 if local.get $buffer local.get $i @@ -4542,25 +4588,23 @@ i32.or i32.store $0 i32.const 2 - local.set $i|8 + local.set $i|7 loop $for-loop|1 - local.get $i|8 + local.get $i|7 local.get $offset i32.lt_s - local.set $9 - local.get $9 if local.get $buffer - local.get $i|8 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 $0 - local.get $i|8 + local.get $i|7 i32.const 1 i32.add - local.set $i|8 + local.set $i|7 br $for-loop|1 end end @@ -4576,51 +4620,54 @@ local.get $buffer i32.const 101 i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $buffer|10 - local.get $kk - i32.const 1 - i32.sub - local.set $k|11 - local.get $k|11 - i32.const 0 - i32.lt_s - local.set $sign - local.get $sign - if - i32.const 0 - local.get $k|11 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $k|11 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 $0 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $k|11 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals - local.get $buffer|10 - local.set $buffer|14 - local.get $k|11 - local.set $num - local.get $decimals - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num - local.get $offset|16 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|10 - i32.const 45 - i32.const 43 - local.get $sign - select - i32.store16 $0 - local.get $decimals local.set $length local.get $length i32.const 2 @@ -4650,53 +4697,56 @@ i32.const 101 i32.store16 $0 offset=2 local.get $length - local.get $buffer - local.get $len - i32.add - i32.const 4 - i32.add - local.set $buffer|18 - local.get $kk - i32.const 1 - i32.sub - local.set $k|19 - local.get $k|19 - i32.const 0 - i32.lt_s - local.set $sign|20 - local.get $sign|20 - if - i32.const 0 - local.get $k|19 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $k|19 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 $0 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $k|19 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals|21 - local.get $buffer|18 - local.set $buffer|22 - local.get $k|19 - local.set $num|23 - local.get $decimals|21 - local.set $offset|24 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|22 - local.get $num|23 - local.get $offset|24 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|18 - i32.const 45 - i32.const 43 - local.get $sign|20 - select - i32.store16 $0 - local.get $decimals|21 i32.add local.set $length local.get $length @@ -4708,452 +4758,470 @@ end unreachable end - unreachable - end - unreachable - ) - (func $~lib/util/number/dtoa_core (type $i32_f64_=>_i32) (param $buffer i32) (param $value f64) (result i32) - (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) - (local $frc i64) - (local $f i64) - (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) - (local $off i32) - (local $m i32) - (local $minExp i32) - (local $dk f64) - (local $k i32) - (local $index i32) - (local $off|20 i32) - (local $frc_pow i64) - (local $exp_pow i32) - (local $u i64) - (local $v i64) - (local $u0 i64) - (local $v0 i64) - (local $u1 i64) - (local $v1 i64) - (local $l i64) - (local $t i64) - (local $w i64) - (local $w_frc i64) - (local $e1 i32) - (local $e2 i32) - (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) - (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) - (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) - (local $wm_frc i64) - (local $delta i64) - (local $len i32) - local.get $value - f64.const 0 - f64.lt - local.set $sign - local.get $sign - if - local.get $value - f64.neg - local.set $value - local.get $buffer - i32.const 45 - i32.store16 $0 + unreachable + end + unreachable + ) + (func $~lib/util/number/dtoa_core (type $i32_f64_=>_i32) (param $buffer i32) (param $value f64) (result i32) + (local $sign i32) + (local $value|3 f64) + (local $buffer|4 i32) + (local $sign|5 i32) + (local $uv i64) + (local $exp i32) + (local $sid i64) + (local $frc i64) + (local $f i64) + (local $e i32) + (local $frc|12 i64) + (local $exp|13 i32) + (local $off i32) + (local $m i32) + (local $minExp i32) + (local $dk f64) + (local $k i32) + (local $index i32) + (local $off|20 i32) + (local $frc_pow i64) + (local $exp_pow i32) + (local $u i64) + (local $v i64) + (local $u0 i64) + (local $v0 i64) + (local $u1 i64) + (local $v1 i64) + (local $l i64) + (local $t i64) + (local $w i64) + (local $w_frc i64) + (local $e1 i32) + (local $e2 i32) + (local $w_exp i32) + (local $u|36 i64) + (local $v|37 i64) + (local $u0|38 i64) + (local $v0|39 i64) + (local $u1|40 i64) + (local $v1|41 i64) + (local $l|42 i64) + (local $t|43 i64) + (local $w|44 i64) + (local $wp_frc i64) + (local $e1|46 i32) + (local $e2|47 i32) + (local $wp_exp i32) + (local $u|49 i64) + (local $v|50 i64) + (local $u0|51 i64) + (local $v0|52 i64) + (local $u1|53 i64) + (local $v1|54 i64) + (local $l|55 i64) + (local $t|56 i64) + (local $w|57 i64) + (local $wm_frc i64) + (local $delta i64) + (local $len i32) + local.get $value + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $value + f64.neg + local.set $value + local.get $buffer + i32.const 45 + i32.store16 $0 + end + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|3 + local.get $buffer + local.set $buffer|4 + local.get $sign + local.set $sign|5 + local.get $value|3 + i64.reinterpret_f64 + local.set $uv + local.get $uv + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv + i64.const 4503599627370495 + i64.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid + i64.add + local.set $frc + local.get $exp + i32.const 1 + local.get $exp + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|12 + local.get $e + i32.const 1 + i32.sub + local.set $exp|13 + local.get $frc|12 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|12 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|12 + local.get $exp|13 + local.get $off + i32.sub + local.set $exp|13 + i32.const 1 + local.get $f + i64.const 4503599627370496 + i64.eq + i32.add + local.set $m + local.get $frc|12 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 8760 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load $0 + global.set $~lib/util/number/_frc_pow + i32.const 9456 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|20 + local.get $frc + local.get $off|20 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|20 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|36 + local.get $frc_pow + local.set $v|37 + local.get $u|36 + i64.const 4294967295 + i64.and + local.set $u0|38 + local.get $v|37 + i64.const 4294967295 + i64.and + local.set $v0|39 + local.get $u|36 + i64.const 32 + i64.shr_u + local.set $u1|40 + local.get $v|37 + i64.const 32 + i64.shr_u + local.set $v1|41 + local.get $u0|38 + local.get $v0|39 + i64.mul + local.set $l|42 + local.get $u1|40 + local.get $v0|39 + i64.mul + local.get $l|42 + i64.const 32 + i64.shr_u + i64.add + local.set $t|43 + local.get $u0|38 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.const 4294967295 + i64.and + i64.add + local.set $w|44 + local.get $w|44 + i64.const 2147483647 + i64.add + local.set $w|44 + local.get $t|43 + i64.const 32 + i64.shr_u + local.set $t|43 + local.get $w|44 + i64.const 32 + i64.shr_u + local.set $w|44 + local.get $u1|40 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.add + local.get $w|44 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|46 + local.get $exp_pow + local.set $e2|47 + local.get $e1|46 + local.get $e2|47 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|49 + local.get $frc_pow + local.set $v|50 + local.get $u|49 + i64.const 4294967295 + i64.and + local.set $u0|51 + local.get $v|50 + i64.const 4294967295 + i64.and + local.set $v0|52 + local.get $u|49 + i64.const 32 + i64.shr_u + local.set $u1|53 + local.get $v|50 + i64.const 32 + i64.shr_u + local.set $v1|54 + local.get $u0|51 + local.get $v0|52 + i64.mul + local.set $l|55 + local.get $u1|53 + local.get $v0|52 + i64.mul + local.get $l|55 + i64.const 32 + i64.shr_u + i64.add + local.set $t|56 + local.get $u0|51 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.const 4294967295 + i64.and + i64.add + local.set $w|57 + local.get $w|57 + i64.const 2147483647 + i64.add + local.set $w|57 + local.get $t|56 + i64.const 32 + i64.shr_u + local.set $t|56 + local.get $w|57 + i64.const 32 + i64.shr_u + local.set $w|57 + local.get $u1|53 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.add + local.get $w|57 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|4 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|5 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 end - local.get $value - local.set $value|3 - local.get $buffer - local.set $buffer|4 - local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|12 - local.get $e - i32.const 1 - i32.sub - local.set $exp|13 - local.get $frc|12 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|12 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|12 - local.get $exp|13 - local.get $off - i32.sub - local.set $exp|13 - i32.const 1 - local.get $f - i64.const 4503599627370496 - i64.eq - i32.add - local.set $m - local.get $frc|12 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 8760 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 9456 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $frc - i64.clz - i32.wrap_i64 - local.set $off|20 - local.get $frc - local.get $off|20 - i64.extend_i32_s - i64.shl - local.set $frc - local.get $exp - local.get $off|20 - i32.sub - local.set $exp - global.get $~lib/util/number/_frc_pow - local.set $frc_pow - global.get $~lib/util/number/_exp_pow - local.set $exp_pow - local.get $frc - local.set $u - local.get $frc_pow - local.set $v - local.get $u - i64.const 4294967295 - i64.and - local.set $u0 - local.get $v - i64.const 4294967295 - i64.and - local.set $v0 - local.get $u - i64.const 32 - i64.shr_u - local.set $u1 - local.get $v - i64.const 32 - i64.shr_u - local.set $v1 - local.get $u0 - local.get $v0 - i64.mul - local.set $l - local.get $u1 - local.get $v0 - i64.mul - local.get $l - i64.const 32 - i64.shr_u - i64.add - local.set $t - local.get $u0 - local.get $v1 - i64.mul - local.get $t - i64.const 4294967295 - i64.and - i64.add - local.set $w - local.get $w - i64.const 2147483647 - i64.add - local.set $w - local.get $t - i64.const 32 - i64.shr_u - local.set $t - local.get $w - i64.const 32 - i64.shr_u - local.set $w - local.get $u1 - local.get $v1 - i64.mul - local.get $t - i64.add - local.get $w - i64.add - local.set $w_frc - local.get $exp - local.set $e1 - local.get $exp_pow - local.set $e2 - local.get $e1 - local.get $e2 - i32.add - i32.const 64 - i32.add - local.set $w_exp - global.get $~lib/util/number/_frc_plus - local.set $u|36 - local.get $frc_pow - local.set $v|37 - local.get $u|36 - i64.const 4294967295 - i64.and - local.set $u0|38 - local.get $v|37 - i64.const 4294967295 - i64.and - local.set $v0|39 - local.get $u|36 - i64.const 32 - i64.shr_u - local.set $u1|40 - local.get $v|37 - i64.const 32 - i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 - i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 - i64.mul - local.get $l|42 - i64.const 32 - i64.shr_u - i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.const 4294967295 - i64.and - i64.add - local.set $w|44 - local.get $w|44 - i64.const 2147483647 - i64.add - local.set $w|44 - local.get $t|43 - i64.const 32 - i64.shr_u - local.set $t|43 - local.get $w|44 - i64.const 32 - i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.add - local.get $w|44 - i64.add - i64.const 1 - i64.sub - local.set $wp_frc - global.get $~lib/util/number/_exp - local.set $e1|46 - local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 - i32.add - i32.const 64 - i32.add - local.set $wp_exp - global.get $~lib/util/number/_frc_minus - local.set $u|49 - local.get $frc_pow - local.set $v|50 - local.get $u|49 - i64.const 4294967295 - i64.and - local.set $u0|51 - local.get $v|50 - i64.const 4294967295 - i64.and - local.set $v0|52 - local.get $u|49 - i64.const 32 - i64.shr_u - local.set $u1|53 - local.get $v|50 - i64.const 32 - i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 - i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 - i64.mul - local.get $l|55 - i64.const 32 - i64.shr_u - i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.const 4294967295 - i64.and - i64.add - local.set $w|57 - local.get $w|57 - i64.const 2147483647 - i64.add - local.set $w|57 - local.get $t|56 - i64.const 32 - i64.shr_u - local.set $t|56 - local.get $w|57 - i64.const 32 - i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.add - local.get $w|57 - i64.add - i64.const 1 - i64.add - local.set $wm_frc - local.get $wp_frc - local.get $wm_frc - i64.sub - local.set $delta - local.get $buffer|4 - local.get $w_frc - local.get $w_exp - local.get $wp_frc - local.get $wp_exp - local.get $delta - local.get $sign|5 - call $~lib/util/number/genDigits local.set $len local.get $buffer local.get $sign @@ -5169,16 +5237,17 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/number/F64#toString (type $f64_i32_=>_i32) (param $this f64) (param $radix i32) (result i32) local.get $this call $~lib/util/number/dtoa + return ) (func $~lib/math/ipow32 (type $i32_i32_=>_i32) (param $x i32) (param $e i32) (result i32) (local $out i32) (local $log i32) (local $4 i32) - (local $5 i32) i32.const 1 local.set $out i32.const 0 @@ -5369,8 +5438,6 @@ end loop $while-continue|1 local.get $e - local.set $5 - local.get $5 if local.get $e i32.const 1 @@ -5393,63 +5460,83 @@ end end local.get $out + return ) (func $resolve-binary/Foo#lt (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 9824 + return ) (func $~lib/string/String#toString (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $resolve-binary/Foo#gt (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 9856 + return ) (func $resolve-binary/Foo#le (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 9888 + return ) (func $resolve-binary/Foo#ge (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 9920 + return ) (func $resolve-binary/Foo#eq (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 9952 + return ) (func $resolve-binary/Foo#ne (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 9984 + return ) (func $resolve-binary/Foo#add (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 10016 + return ) (func $resolve-binary/Foo.sub (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 10048 + return ) (func $resolve-binary/Foo#mul (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 10080 + return ) (func $resolve-binary/Foo#div (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 10112 + return ) (func $resolve-binary/Foo#rem (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 10144 + return ) (func $resolve-binary/Foo#pow (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) i32.const 10176 + return ) (func $resolve-binary/Bar#add (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) local.get $other + return ) (func $resolve-binary/Bar#self (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $resolve-binary/Baz#add (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) local.get $other + return ) (func $resolve-binary/Baz#sub (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) local.get $this + return ) (func $resolve-binary/Baz.mul (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $right + return ) (func $resolve-binary/Baz.div (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -7388,6 +7475,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/util/number/dtoa (type $f64_=>_i32) (param $value f64) (result i32) (local $size i32) @@ -7471,6 +7559,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index e086ef05b4..2b39ee20d7 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -1,11 +1,11 @@ (module (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i64_i64_i32_i64_=>_i32 (func_subtype (param i64 i64 i32 i64) (result i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -426,6 +426,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 44016 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 11216 + i32.load $0 + i32.gt_u + if + i32.const 1600 + i32.const 1664 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 11220 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -4307,146 +4439,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 44016 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 11216 - i32.load $0 - i32.gt_u - if - i32.const 1600 - i32.const 1664 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 11220 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index d9fb8577b1..56b2da1721 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -103,6 +103,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -115,17 +116,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -137,8 +139,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -281,6 +281,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -300,6 +301,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -385,15 +387,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -420,6 +419,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -595,22 +595,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -635,16 +638,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -740,18 +746,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -775,18 +784,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -796,12 +808,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -949,22 +964,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1009,16 +1027,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1073,10 +1094,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1192,6 +1216,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1201,15 +1226,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1270,17 +1293,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1292,22 +1313,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1380,6 +1399,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1440,8 +1460,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1486,8 +1504,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1537,8 +1553,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1620,6 +1634,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1698,6 +1713,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1713,6 +1729,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1803,16 +1820,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1845,16 +1865,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1868,46 +1891,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1944,10 +1974,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2067,30 +2100,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2161,6 +2200,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2173,6 +2213,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2235,6 +2276,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2377,6 +2419,7 @@ i32.shl i32.add f32.load $0 + return ) (func $~lib/util/number/decimalCount32 (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -2442,32 +2485,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $15 i32) (local $d i32) + (local $16 i32) (local $17 i32) - (local $18 i32) (local $tmp i64) - (local $buffer|20 i32) - (local $len|21 i32) - (local $delta|22 i64) + (local $buffer|19 i32) + (local $len|20 i32) + (local $delta|21 i64) (local $rest i64) (local $ten_kappa i64) (local $wp_w i64) (local $lastp i32) (local $digit i32) + (local $d|27 i64) (local $28 i32) - (local $29 i32) - (local $d|30 i64) - (local $31 i32) - (local $buffer|32 i32) - (local $len|33 i32) - (local $delta|34 i64) - (local $rest|35 i64) - (local $ten_kappa|36 i64) - (local $wp_w|37 i64) - (local $lastp|38 i32) - (local $digit|39 i32) - (local $40 i32) + (local $buffer|29 i32) + (local $len|30 i32) + (local $delta|31 i64) + (local $rest|32 i64) + (local $ten_kappa|33 i64) + (local $wp_w|34 i64) + (local $lastp|35 i32) + (local $digit|36 i32) i32.const 0 local.get $mp_exp i32.sub @@ -2504,8 +2543,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $15 - local.get $15 if block $break|1 block $case10|1 @@ -2520,44 +2557,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $17 - local.get $17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -2669,11 +2706,11 @@ if local.get $buffer local.get $len - local.tee $18 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $18 + local.get $17 i32.const 1 i32.shl i32.add @@ -2705,11 +2742,11 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $buffer|20 + local.set $buffer|19 local.get $len - local.set $len|21 + local.set $len|20 local.get $delta - local.set $delta|22 + local.set $delta|21 local.get $tmp local.set $rest i32.const 1680 @@ -2724,8 +2761,8 @@ local.set $ten_kappa local.get $wp_w_frc local.set $wp_w - local.get $buffer|20 - local.get $len|21 + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 @@ -2740,7 +2777,7 @@ local.get $wp_w i64.lt_u if (result i32) - local.get $delta|22 + local.get $delta|21 local.get $rest i64.sub local.get $ten_kappa @@ -2770,8 +2807,6 @@ else i32.const 0 end - local.set $28 - local.get $28 if local.get $digit i32.const 1 @@ -2795,8 +2830,6 @@ end loop $while-continue|4 i32.const 1 - local.set $29 - local.get $29 if local.get $p2 i64.const 10 @@ -2810,8 +2843,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d|30 - local.get $d|30 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -2820,16 +2853,16 @@ if local.get $buffer local.get $len - local.tee $31 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $31 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d|30 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and @@ -2864,79 +2897,77 @@ i64.mul local.set $wp_w_frc local.get $buffer - local.set $buffer|32 + local.set $buffer|29 local.get $len - local.set $len|33 + local.set $len|30 local.get $delta - local.set $delta|34 + local.set $delta|31 local.get $p2 - local.set $rest|35 + local.set $rest|32 local.get $one_frc - local.set $ten_kappa|36 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $wp_w|37 - local.get $buffer|32 - local.get $len|33 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $lastp|38 - local.get $lastp|38 + local.set $lastp|35 + local.get $lastp|35 i32.load16_u $0 - local.set $digit|39 + local.set $digit|36 loop $while-continue|6 - local.get $rest|35 - local.get $wp_w|37 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $delta|34 - local.get $rest|35 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $ten_kappa|36 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $wp_w|37 - local.get $rest|35 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $40 - local.get $40 if - local.get $digit|39 + local.get $digit|36 i32.const 1 i32.sub - local.set $digit|39 - local.get $rest|35 - local.get $ten_kappa|36 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $rest|35 + local.set $rest|32 br $while-continue|6 end end - local.get $lastp|38 - local.get $digit|39 + local.get $lastp|35 + local.get $digit|36 i32.store16 $0 local.get $len return @@ -2947,24 +2978,21 @@ unreachable ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -3023,19 +3051,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 1720 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -3063,13 +3091,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -3092,26 +3120,24 @@ (func $~lib/util/number/prettify (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) (local $i i32) - (local $5 i32) (local $ptr i32) (local $offset i32) - (local $i|8 i32) - (local $9 i32) - (local $buffer|10 i32) - (local $k|11 i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) (local $sign i32) (local $decimals i32) - (local $buffer|14 i32) + (local $buffer|12 i32) (local $num i32) - (local $offset|16 i32) + (local $offset|14 i32) (local $len i32) - (local $buffer|18 i32) - (local $k|19 i32) - (local $sign|20 i32) - (local $decimals|21 i32) - (local $buffer|22 i32) - (local $num|23 i32) - (local $offset|24 i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -3152,8 +3178,6 @@ local.get $i local.get $kk i32.lt_s - local.set $5 - local.get $5 if local.get $buffer local.get $i @@ -3257,25 +3281,23 @@ i32.or i32.store $0 i32.const 2 - local.set $i|8 + local.set $i|7 loop $for-loop|1 - local.get $i|8 + local.get $i|7 local.get $offset i32.lt_s - local.set $9 - local.get $9 if local.get $buffer - local.get $i|8 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 $0 - local.get $i|8 + local.get $i|7 i32.const 1 i32.add - local.set $i|8 + local.set $i|7 br $for-loop|1 end end @@ -3291,51 +3313,54 @@ local.get $buffer i32.const 101 i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $buffer|10 - local.get $kk - i32.const 1 - i32.sub - local.set $k|11 - local.get $k|11 - i32.const 0 - i32.lt_s - local.set $sign - local.get $sign - if - i32.const 0 - local.get $k|11 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $k|11 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 $0 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $k|11 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals - local.get $buffer|10 - local.set $buffer|14 - local.get $k|11 - local.set $num - local.get $decimals - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num - local.get $offset|16 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|10 - i32.const 45 - i32.const 43 - local.get $sign - select - i32.store16 $0 - local.get $decimals local.set $length local.get $length i32.const 2 @@ -3365,53 +3390,56 @@ i32.const 101 i32.store16 $0 offset=2 local.get $length - local.get $buffer - local.get $len - i32.add - i32.const 4 - i32.add - local.set $buffer|18 - local.get $kk - i32.const 1 - i32.sub - local.set $k|19 - local.get $k|19 - i32.const 0 - i32.lt_s - local.set $sign|20 - local.get $sign|20 - if - i32.const 0 - local.get $k|19 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $k|19 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 $0 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $k|19 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals|21 - local.get $buffer|18 - local.set $buffer|22 - local.get $k|19 - local.set $num|23 - local.get $decimals|21 - local.set $offset|24 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|22 - local.get $num|23 - local.get $offset|24 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|18 - i32.const 45 - i32.const 43 - local.get $sign|20 - select - i32.store16 $0 - local.get $decimals|21 i32.add local.set $length local.get $length @@ -3500,375 +3528,393 @@ i32.const 45 i32.store16 $0 end - local.get $value - local.set $value|3 - local.get $buffer - local.set $buffer|4 - local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|12 - local.get $e - i32.const 1 - i32.sub - local.set $exp|13 - local.get $frc|12 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|12 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|12 - local.get $exp|13 - local.get $off - i32.sub - local.set $exp|13 - i32.const 1 - local.get $f - i64.const 4503599627370496 - i64.eq - i32.add - local.set $m - local.get $frc|12 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 808 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 1504 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $frc - i64.clz - i32.wrap_i64 - local.set $off|20 - local.get $frc - local.get $off|20 - i64.extend_i32_s - i64.shl - local.set $frc - local.get $exp - local.get $off|20 - i32.sub - local.set $exp - global.get $~lib/util/number/_frc_pow - local.set $frc_pow - global.get $~lib/util/number/_exp_pow - local.set $exp_pow - local.get $frc - local.set $u - local.get $frc_pow - local.set $v - local.get $u - i64.const 4294967295 - i64.and - local.set $u0 - local.get $v - i64.const 4294967295 - i64.and - local.set $v0 - local.get $u - i64.const 32 - i64.shr_u - local.set $u1 - local.get $v - i64.const 32 - i64.shr_u - local.set $v1 - local.get $u0 - local.get $v0 - i64.mul - local.set $l - local.get $u1 - local.get $v0 - i64.mul - local.get $l - i64.const 32 - i64.shr_u - i64.add - local.set $t - local.get $u0 - local.get $v1 - i64.mul - local.get $t - i64.const 4294967295 - i64.and - i64.add - local.set $w - local.get $w - i64.const 2147483647 - i64.add - local.set $w - local.get $t - i64.const 32 - i64.shr_u - local.set $t - local.get $w - i64.const 32 - i64.shr_u - local.set $w - local.get $u1 - local.get $v1 - i64.mul - local.get $t - i64.add - local.get $w - i64.add - local.set $w_frc - local.get $exp - local.set $e1 - local.get $exp_pow - local.set $e2 - local.get $e1 - local.get $e2 - i32.add - i32.const 64 - i32.add - local.set $w_exp - global.get $~lib/util/number/_frc_plus - local.set $u|36 - local.get $frc_pow - local.set $v|37 - local.get $u|36 - i64.const 4294967295 - i64.and - local.set $u0|38 - local.get $v|37 - i64.const 4294967295 - i64.and - local.set $v0|39 - local.get $u|36 - i64.const 32 - i64.shr_u - local.set $u1|40 - local.get $v|37 - i64.const 32 - i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 - i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 - i64.mul - local.get $l|42 - i64.const 32 - i64.shr_u - i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.const 4294967295 - i64.and - i64.add - local.set $w|44 - local.get $w|44 - i64.const 2147483647 - i64.add - local.set $w|44 - local.get $t|43 - i64.const 32 - i64.shr_u - local.set $t|43 - local.get $w|44 - i64.const 32 - i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.add - local.get $w|44 - i64.add - i64.const 1 - i64.sub - local.set $wp_frc - global.get $~lib/util/number/_exp - local.set $e1|46 - local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 - i32.add - i32.const 64 - i32.add - local.set $wp_exp - global.get $~lib/util/number/_frc_minus - local.set $u|49 - local.get $frc_pow - local.set $v|50 - local.get $u|49 - i64.const 4294967295 - i64.and - local.set $u0|51 - local.get $v|50 - i64.const 4294967295 - i64.and - local.set $v0|52 - local.get $u|49 - i64.const 32 - i64.shr_u - local.set $u1|53 - local.get $v|50 - i64.const 32 - i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 - i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 - i64.mul - local.get $l|55 - i64.const 32 - i64.shr_u - i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.const 4294967295 - i64.and - i64.add - local.set $w|57 - local.get $w|57 - i64.const 2147483647 - i64.add - local.set $w|57 - local.get $t|56 - i64.const 32 - i64.shr_u - local.set $t|56 - local.get $w|57 - i64.const 32 - i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.add - local.get $w|57 - i64.add - i64.const 1 - i64.add - local.set $wm_frc - local.get $wp_frc - local.get $wm_frc - i64.sub - local.set $delta - local.get $buffer|4 - local.get $w_frc - local.get $w_exp - local.get $wp_frc - local.get $wp_exp - local.get $delta - local.get $sign|5 - call $~lib/util/number/genDigits + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|3 + local.get $buffer + local.set $buffer|4 + local.get $sign + local.set $sign|5 + local.get $value|3 + i64.reinterpret_f64 + local.set $uv + local.get $uv + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv + i64.const 4503599627370495 + i64.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid + i64.add + local.set $frc + local.get $exp + i32.const 1 + local.get $exp + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|12 + local.get $e + i32.const 1 + i32.sub + local.set $exp|13 + local.get $frc|12 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|12 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|12 + local.get $exp|13 + local.get $off + i32.sub + local.set $exp|13 + i32.const 1 + local.get $f + i64.const 4503599627370496 + i64.eq + i32.add + local.set $m + local.get $frc|12 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 808 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load $0 + global.set $~lib/util/number/_frc_pow + i32.const 1504 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|20 + local.get $frc + local.get $off|20 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|20 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|36 + local.get $frc_pow + local.set $v|37 + local.get $u|36 + i64.const 4294967295 + i64.and + local.set $u0|38 + local.get $v|37 + i64.const 4294967295 + i64.and + local.set $v0|39 + local.get $u|36 + i64.const 32 + i64.shr_u + local.set $u1|40 + local.get $v|37 + i64.const 32 + i64.shr_u + local.set $v1|41 + local.get $u0|38 + local.get $v0|39 + i64.mul + local.set $l|42 + local.get $u1|40 + local.get $v0|39 + i64.mul + local.get $l|42 + i64.const 32 + i64.shr_u + i64.add + local.set $t|43 + local.get $u0|38 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.const 4294967295 + i64.and + i64.add + local.set $w|44 + local.get $w|44 + i64.const 2147483647 + i64.add + local.set $w|44 + local.get $t|43 + i64.const 32 + i64.shr_u + local.set $t|43 + local.get $w|44 + i64.const 32 + i64.shr_u + local.set $w|44 + local.get $u1|40 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.add + local.get $w|44 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|46 + local.get $exp_pow + local.set $e2|47 + local.get $e1|46 + local.get $e2|47 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|49 + local.get $frc_pow + local.set $v|50 + local.get $u|49 + i64.const 4294967295 + i64.and + local.set $u0|51 + local.get $v|50 + i64.const 4294967295 + i64.and + local.set $v0|52 + local.get $u|49 + i64.const 32 + i64.shr_u + local.set $u1|53 + local.get $v|50 + i64.const 32 + i64.shr_u + local.set $v1|54 + local.get $u0|51 + local.get $v0|52 + i64.mul + local.set $l|55 + local.get $u1|53 + local.get $v0|52 + i64.mul + local.get $l|55 + i64.const 32 + i64.shr_u + i64.add + local.set $t|56 + local.get $u0|51 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.const 4294967295 + i64.and + i64.add + local.set $w|57 + local.get $w|57 + i64.const 2147483647 + i64.add + local.set $w|57 + local.get $t|56 + i64.const 32 + i64.shr_u + local.set $t|56 + local.get $w|57 + i64.const 32 + i64.shr_u + local.set $w|57 + local.get $u1|53 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.add + local.get $w|57 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|4 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|5 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 + end local.set $len local.get $buffer local.get $sign @@ -3884,11 +3930,13 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/number/F32#toString (type $f32_i32_=>_i32) (param $this f32) (param $radix i32) (result i32) local.get $this f64.promote_f32 call $~lib/util/number/dtoa + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3901,12 +3949,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -3977,8 +4025,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -4007,6 +4053,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -4049,6 +4096,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/typedarray/Uint8Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index @@ -4088,15 +4136,13 @@ local.get $index i32.add i32.load8_u $0 + return ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -4144,14 +4190,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -4178,8 +4225,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -4200,8 +4245,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -4217,6 +4260,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -4315,6 +4359,7 @@ i32.and local.get $radix call $~lib/util/number/utoa32 + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -4996,6 +5041,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/typedarray/Uint8Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -5211,5 +5257,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $12 + return ) ) diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index 5c85e09261..847c6b26d2 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -67,6 +67,7 @@ local.get $a i32.const 41 i32.add + return ) (func $start:resolve-function-expression~anonymous|2 (type $i32_=>_i32) (param $a i32) (result i32) local.get $a @@ -146,6 +147,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -158,17 +160,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -180,8 +183,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -324,6 +325,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -343,6 +345,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -428,15 +431,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -463,6 +463,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -638,22 +639,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -678,16 +682,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -783,18 +790,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -818,18 +828,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -839,12 +852,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -992,22 +1008,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1052,16 +1071,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1116,10 +1138,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1235,6 +1260,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1244,15 +1270,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1313,17 +1337,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1335,22 +1357,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1423,6 +1443,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1483,8 +1504,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1529,8 +1548,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1580,8 +1597,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1663,6 +1678,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1741,6 +1757,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1756,6 +1773,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1846,16 +1864,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1888,16 +1909,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1911,46 +1935,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1987,10 +2018,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2110,30 +2144,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2204,6 +2244,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2216,6 +2257,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2278,26 +2320,24 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -2356,19 +2396,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 812 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -2396,13 +2436,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -2423,13 +2463,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -2477,14 +2514,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -2511,8 +2549,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -2533,8 +2569,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -2550,6 +2584,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -2646,6 +2681,7 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2658,12 +2694,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2734,8 +2770,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2764,6 +2798,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2806,6 +2841,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -3179,5 +3215,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) ) diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index 908e8c9164..e7aed9e6dd 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1,8 +1,8 @@ (module (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -120,6 +120,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 36216 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 3424 + i32.load $0 + i32.gt_u + if + i32.const 1648 + i32.const 1712 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 3428 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1671,6 +1803,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1791,41 +1924,41 @@ i32.ne br_if $__inlined_func$~lib/string/String.__eq drop - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $4 - i32.const 7 - i32.and - i32.eqz - local.get $1 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $4 + i32.const 7 + i32.and + i32.eqz + local.get $1 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $4 + i64.load $0 + local.get $3 + i64.load $0 + i64.eq + if local.get $4 - i64.load $0 + i32.const 8 + i32.add + local.set $4 local.get $3 - i64.load $0 - i64.eq - if - local.get $4 - i32.const 8 - i32.add - local.set $4 - local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $3 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 4 + i32.ge_u + br_if $do-loop|0 end end + end + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $1 local.tee $0 @@ -1836,17 +1969,16 @@ if local.get $4 i32.load16_u $0 - local.tee $2 + local.tee $0 local.get $3 i32.load16_u $0 - local.tee $0 + local.tee $2 + i32.sub + local.set $5 + local.get $0 + local.get $2 i32.ne - if - local.get $2 - local.get $0 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $4 i32.const 2 i32.add @@ -1859,7 +1991,9 @@ end end i32.const 0 + local.set $5 end + local.get $5 i32.eqz end i32.eqz @@ -1877,146 +2011,18 @@ global.set $~lib/memory/__stack_pointer ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 36216 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3424 - i32.load $0 - i32.gt_u - if - i32.const 1648 - i32.const 1712 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3428 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 - local.get $0 - local.get $1 local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/resolve-localortype.debug.wat b/tests/compiler/resolve-localortype.debug.wat index fd36db85e9..79777611ef 100644 --- a/tests/compiler/resolve-localortype.debug.wat +++ b/tests/compiler/resolve-localortype.debug.wat @@ -13,10 +13,12 @@ (export "test" (func $export:resolve-localortype/test)) (func $resolve-localortype/foo<~lib/string/String> (type $i32_=>_i32) (param $s i32) (result i32) local.get $s + return ) (func $resolve-localortype/test (type $i32_=>_i32) (param $string i32) (result i32) local.get $string call $resolve-localortype/foo<~lib/string/String> + return ) (func $~stack_check (type $none_=>_none) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-nested.ts b/tests/compiler/resolve-nested.ts index 38082458b6..523ae141c8 100644 --- a/tests/compiler/resolve-nested.ts +++ b/tests/compiler/resolve-nested.ts @@ -3,12 +3,12 @@ namespace Outer { export class InnerClass {} export namespace Inner { export class EvenInnerClass {} - var a: OuterClass; - var b: InnerClass; - var c: EvenInnerClass; - var d: Outer.InnerClass; - var e: Outer.Inner.EvenInnerClass; - var f: Inner.EvenInnerClass; + var a: OuterClass | null; + var b: InnerClass | null; + var c: EvenInnerClass | null; + var d: Outer.InnerClass | null; + var e: Outer.Inner.EvenInnerClass | null; + var f: Inner.EvenInnerClass | null; export function evenInner( a: OuterClass, b: InnerClass, @@ -18,11 +18,11 @@ namespace Outer { f: Inner.EvenInnerClass ): void {} } - var a: OuterClass; - var b: InnerClass; - var c: Inner.EvenInnerClass; - var d: Outer.InnerClass; - var e: Outer.Inner.EvenInnerClass; + var a: OuterClass | null; + var b: InnerClass | null; + var c: Inner.EvenInnerClass | null; + var d: Outer.InnerClass | null; + var e: Outer.Inner.EvenInnerClass | null; export function inner( a: OuterClass, b: InnerClass, @@ -31,9 +31,9 @@ namespace Outer { e: Outer.Inner.EvenInnerClass ): void {} } -var a: OuterClass; -var b: Outer.InnerClass; -var c: Outer.Inner.EvenInnerClass; +var a: OuterClass | null; +var b: Outer.InnerClass | null; +var c: Outer.Inner.EvenInnerClass | null; export function outer( a: OuterClass, b: Outer.InnerClass, diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 2104057fc0..7c18fd6344 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -60,6 +60,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -72,17 +73,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -94,8 +96,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -238,6 +238,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -257,6 +258,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -342,15 +344,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -377,6 +376,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -552,22 +552,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -592,16 +595,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -697,18 +703,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -732,18 +741,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -753,12 +765,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -906,22 +921,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -966,16 +984,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1030,10 +1051,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1149,6 +1173,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1158,15 +1183,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1227,17 +1250,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1249,22 +1270,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1337,6 +1356,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1397,8 +1417,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1443,8 +1461,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1494,8 +1510,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1577,6 +1591,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1655,6 +1670,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1670,6 +1686,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1760,16 +1777,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1802,16 +1822,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1825,46 +1848,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1901,10 +1931,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2024,30 +2057,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2118,6 +2157,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2130,6 +2170,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2192,6 +2233,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $resolve-new/Foo#bar (type $i32_=>_none) (param $this i32) nop diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index b5f506b1bb..2b7e040bbf 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -84,6 +84,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34232 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1440 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1444 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1391,146 +1523,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34232 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1440 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1444 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index a192a27f9b..6cd1305bfe 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -147,6 +147,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -159,17 +160,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -181,8 +183,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -325,6 +325,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -344,6 +345,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -429,15 +431,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -464,6 +463,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -639,22 +639,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -679,16 +682,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -784,18 +790,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -819,18 +828,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -840,12 +852,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -993,22 +1008,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1053,16 +1071,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1117,10 +1138,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1236,6 +1260,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1245,15 +1270,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1314,17 +1337,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1336,22 +1357,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1424,6 +1443,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1484,8 +1504,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1530,8 +1548,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1581,8 +1597,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1664,6 +1678,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1742,6 +1757,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1757,6 +1773,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1847,16 +1864,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1889,16 +1909,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1912,46 +1935,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1988,10 +2018,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2111,30 +2144,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2205,6 +2244,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2217,6 +2257,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2279,26 +2320,24 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -2357,19 +2396,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 636 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -2397,13 +2436,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -2424,13 +2463,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -2478,14 +2514,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -2512,8 +2549,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -2534,8 +2569,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -2551,6 +2584,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -2647,6 +2681,7 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2659,12 +2694,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2735,8 +2770,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2765,6 +2798,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2807,9 +2841,11 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $resolve-propertyaccess/Class.get:staticProperty (type $none_=>_i32) (result i32) i32.const 7 + return ) (func $resolve-propertyaccess/Class#set:instanceField (type $i32_i32_=>_none) (param $this i32) (param $instanceField i32) local.get $this @@ -2822,6 +2858,7 @@ ) (func $resolve-propertyaccess/Class#get:instanceProperty (type $i32_=>_i32) (param $this i32) (result i32) i32.const 8 + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -3410,6 +3447,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index 2061f5eee3..2846d466d2 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -119,6 +119,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 36472 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 3680 + i32.load $0 + i32.gt_u + if + i32.const 1472 + i32.const 1536 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 3684 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2168,146 +2300,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 36472 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3680 - i32.load $0 - i32.gt_u - if - i32.const 1472 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3684 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 1cbdf1d1b5..84739b2f4d 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -154,6 +154,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -166,17 +167,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -188,8 +190,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -332,6 +332,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -351,6 +352,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -436,15 +438,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -471,6 +470,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -646,22 +646,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -686,16 +689,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -791,18 +797,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -826,18 +835,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -847,12 +859,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1000,22 +1015,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1060,16 +1078,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1124,10 +1145,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1243,6 +1267,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1252,15 +1277,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1321,17 +1344,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1343,22 +1364,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1431,6 +1450,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1491,8 +1511,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1537,8 +1555,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1588,8 +1604,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1671,6 +1685,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1749,6 +1764,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1764,6 +1780,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1854,16 +1871,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1896,16 +1916,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1919,46 +1942,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1995,10 +2025,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2118,30 +2151,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2212,6 +2251,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2224,6 +2264,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2286,26 +2327,24 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -2364,19 +2403,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 636 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -2404,13 +2443,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -2431,13 +2470,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -2485,14 +2521,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -2519,8 +2556,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -2541,8 +2576,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -2558,6 +2591,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -2654,6 +2688,7 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2666,12 +2701,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2742,8 +2777,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2772,6 +2805,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2814,6 +2848,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/util/number/genDigits (type $i32_i64_i32_i64_i32_i64_i32_=>_i32) (param $buffer i32) (param $w_frc i64) (param $w_exp i32) (param $mp_frc i64) (param $mp_exp i32) (param $delta i64) (param $sign i32) (result i32) (local $one_exp i32) @@ -2824,32 +2859,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $15 i32) (local $d i32) + (local $16 i32) (local $17 i32) - (local $18 i32) (local $tmp i64) - (local $buffer|20 i32) - (local $len|21 i32) - (local $delta|22 i64) + (local $buffer|19 i32) + (local $len|20 i32) + (local $delta|21 i64) (local $rest i64) (local $ten_kappa i64) (local $wp_w i64) (local $lastp i32) (local $digit i32) + (local $d|27 i64) (local $28 i32) - (local $29 i32) - (local $d|30 i64) - (local $31 i32) - (local $buffer|32 i32) - (local $len|33 i32) - (local $delta|34 i64) - (local $rest|35 i64) - (local $ten_kappa|36 i64) - (local $wp_w|37 i64) - (local $lastp|38 i32) - (local $digit|39 i32) - (local $40 i32) + (local $buffer|29 i32) + (local $len|30 i32) + (local $delta|31 i64) + (local $rest|32 i64) + (local $ten_kappa|33 i64) + (local $wp_w|34 i64) + (local $lastp|35 i32) + (local $digit|36 i32) i32.const 0 local.get $mp_exp i32.sub @@ -2886,8 +2917,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $15 - local.get $15 if block $break|1 block $case10|1 @@ -2902,44 +2931,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $17 - local.get $17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -3051,11 +3080,11 @@ if local.get $buffer local.get $len - local.tee $18 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $18 + local.get $17 i32.const 1 i32.shl i32.add @@ -3087,11 +3116,11 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $buffer|20 + local.set $buffer|19 local.get $len - local.set $len|21 + local.set $len|20 local.get $delta - local.set $delta|22 + local.set $delta|21 local.get $tmp local.set $rest i32.const 3376 @@ -3106,8 +3135,8 @@ local.set $ten_kappa local.get $wp_w_frc local.set $wp_w - local.get $buffer|20 - local.get $len|21 + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 @@ -3122,7 +3151,7 @@ local.get $wp_w i64.lt_u if (result i32) - local.get $delta|22 + local.get $delta|21 local.get $rest i64.sub local.get $ten_kappa @@ -3152,8 +3181,6 @@ else i32.const 0 end - local.set $28 - local.get $28 if local.get $digit i32.const 1 @@ -3177,8 +3204,6 @@ end loop $while-continue|4 i32.const 1 - local.set $29 - local.get $29 if local.get $p2 i64.const 10 @@ -3192,8 +3217,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d|30 - local.get $d|30 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -3202,16 +3227,16 @@ if local.get $buffer local.get $len - local.tee $31 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $31 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d|30 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and @@ -3246,79 +3271,77 @@ i64.mul local.set $wp_w_frc local.get $buffer - local.set $buffer|32 + local.set $buffer|29 local.get $len - local.set $len|33 + local.set $len|30 local.get $delta - local.set $delta|34 + local.set $delta|31 local.get $p2 - local.set $rest|35 + local.set $rest|32 local.get $one_frc - local.set $ten_kappa|36 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $wp_w|37 - local.get $buffer|32 - local.get $len|33 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $lastp|38 - local.get $lastp|38 + local.set $lastp|35 + local.get $lastp|35 i32.load16_u $0 - local.set $digit|39 + local.set $digit|36 loop $while-continue|6 - local.get $rest|35 - local.get $wp_w|37 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $delta|34 - local.get $rest|35 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $ten_kappa|36 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $wp_w|37 - local.get $rest|35 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $40 - local.get $40 if - local.get $digit|39 + local.get $digit|36 i32.const 1 i32.sub - local.set $digit|39 - local.get $rest|35 - local.get $ten_kappa|36 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $rest|35 + local.set $rest|32 br $while-continue|6 end end - local.get $lastp|38 - local.get $digit|39 + local.get $lastp|35 + local.get $digit|36 i32.store16 $0 local.get $len return @@ -3331,26 +3354,24 @@ (func $~lib/util/number/prettify (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) (local $i i32) - (local $5 i32) (local $ptr i32) (local $offset i32) - (local $i|8 i32) - (local $9 i32) - (local $buffer|10 i32) - (local $k|11 i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) (local $sign i32) (local $decimals i32) - (local $buffer|14 i32) + (local $buffer|12 i32) (local $num i32) - (local $offset|16 i32) + (local $offset|14 i32) (local $len i32) - (local $buffer|18 i32) - (local $k|19 i32) - (local $sign|20 i32) - (local $decimals|21 i32) - (local $buffer|22 i32) - (local $num|23 i32) - (local $offset|24 i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -3391,8 +3412,6 @@ local.get $i local.get $kk i32.lt_s - local.set $5 - local.get $5 if local.get $buffer local.get $i @@ -3496,25 +3515,23 @@ i32.or i32.store $0 i32.const 2 - local.set $i|8 + local.set $i|7 loop $for-loop|1 - local.get $i|8 + local.get $i|7 local.get $offset i32.lt_s - local.set $9 - local.get $9 if local.get $buffer - local.get $i|8 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 $0 - local.get $i|8 + local.get $i|7 i32.const 1 i32.add - local.set $i|8 + local.set $i|7 br $for-loop|1 end end @@ -3530,51 +3547,54 @@ local.get $buffer i32.const 101 i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $buffer|10 - local.get $kk - i32.const 1 - i32.sub - local.set $k|11 - local.get $k|11 - i32.const 0 - i32.lt_s - local.set $sign - local.get $sign - if - i32.const 0 - local.get $k|11 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $k|11 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 $0 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $k|11 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals - local.get $buffer|10 - local.set $buffer|14 - local.get $k|11 - local.set $num - local.get $decimals - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num - local.get $offset|16 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|10 - i32.const 45 - i32.const 43 - local.get $sign - select - i32.store16 $0 - local.get $decimals local.set $length local.get $length i32.const 2 @@ -3604,53 +3624,56 @@ i32.const 101 i32.store16 $0 offset=2 local.get $length - local.get $buffer - local.get $len - i32.add - i32.const 4 - i32.add - local.set $buffer|18 - local.get $kk - i32.const 1 - i32.sub - local.set $k|19 - local.get $k|19 - i32.const 0 - i32.lt_s - local.set $sign|20 - local.get $sign|20 - if - i32.const 0 - local.get $k|19 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $k|19 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 $0 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $k|19 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals|21 - local.get $buffer|18 - local.set $buffer|22 - local.get $k|19 - local.set $num|23 - local.get $decimals|21 - local.set $offset|24 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|22 - local.get $num|23 - local.get $offset|24 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|18 - i32.const 45 - i32.const 43 - local.get $sign|20 - select - i32.store16 $0 - local.get $decimals|21 i32.add local.set $length local.get $length @@ -3739,375 +3762,393 @@ i32.const 45 i32.store16 $0 end - local.get $value - local.set $value|3 - local.get $buffer - local.set $buffer|4 - local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|12 - local.get $e - i32.const 1 - i32.sub - local.set $exp|13 - local.get $frc|12 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|12 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|12 - local.get $exp|13 - local.get $off - i32.sub - local.set $exp|13 - i32.const 1 - local.get $f - i64.const 4503599627370496 - i64.eq - i32.add - local.set $m - local.get $frc|12 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2504 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 3200 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $frc - i64.clz - i32.wrap_i64 - local.set $off|20 - local.get $frc - local.get $off|20 - i64.extend_i32_s - i64.shl - local.set $frc - local.get $exp - local.get $off|20 - i32.sub - local.set $exp - global.get $~lib/util/number/_frc_pow - local.set $frc_pow - global.get $~lib/util/number/_exp_pow - local.set $exp_pow - local.get $frc - local.set $u - local.get $frc_pow - local.set $v - local.get $u - i64.const 4294967295 - i64.and - local.set $u0 - local.get $v - i64.const 4294967295 - i64.and - local.set $v0 - local.get $u - i64.const 32 - i64.shr_u - local.set $u1 - local.get $v - i64.const 32 - i64.shr_u - local.set $v1 - local.get $u0 - local.get $v0 - i64.mul - local.set $l - local.get $u1 - local.get $v0 - i64.mul - local.get $l - i64.const 32 - i64.shr_u - i64.add - local.set $t - local.get $u0 - local.get $v1 - i64.mul - local.get $t - i64.const 4294967295 - i64.and - i64.add - local.set $w - local.get $w - i64.const 2147483647 - i64.add - local.set $w - local.get $t - i64.const 32 - i64.shr_u - local.set $t - local.get $w - i64.const 32 - i64.shr_u - local.set $w - local.get $u1 - local.get $v1 - i64.mul - local.get $t - i64.add - local.get $w - i64.add - local.set $w_frc - local.get $exp - local.set $e1 - local.get $exp_pow - local.set $e2 - local.get $e1 - local.get $e2 - i32.add - i32.const 64 - i32.add - local.set $w_exp - global.get $~lib/util/number/_frc_plus - local.set $u|36 - local.get $frc_pow - local.set $v|37 - local.get $u|36 - i64.const 4294967295 - i64.and - local.set $u0|38 - local.get $v|37 - i64.const 4294967295 - i64.and - local.set $v0|39 - local.get $u|36 - i64.const 32 - i64.shr_u - local.set $u1|40 - local.get $v|37 - i64.const 32 - i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 - i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 - i64.mul - local.get $l|42 - i64.const 32 - i64.shr_u - i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.const 4294967295 - i64.and - i64.add - local.set $w|44 - local.get $w|44 - i64.const 2147483647 - i64.add - local.set $w|44 - local.get $t|43 - i64.const 32 - i64.shr_u - local.set $t|43 - local.get $w|44 - i64.const 32 - i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.add - local.get $w|44 - i64.add - i64.const 1 - i64.sub - local.set $wp_frc - global.get $~lib/util/number/_exp - local.set $e1|46 - local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 - i32.add - i32.const 64 - i32.add - local.set $wp_exp - global.get $~lib/util/number/_frc_minus - local.set $u|49 - local.get $frc_pow - local.set $v|50 - local.get $u|49 - i64.const 4294967295 - i64.and - local.set $u0|51 - local.get $v|50 - i64.const 4294967295 - i64.and - local.set $v0|52 - local.get $u|49 - i64.const 32 - i64.shr_u - local.set $u1|53 - local.get $v|50 - i64.const 32 - i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 - i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 - i64.mul - local.get $l|55 - i64.const 32 - i64.shr_u - i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.const 4294967295 - i64.and - i64.add - local.set $w|57 - local.get $w|57 - i64.const 2147483647 - i64.add - local.set $w|57 - local.get $t|56 - i64.const 32 - i64.shr_u - local.set $t|56 - local.get $w|57 - i64.const 32 - i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.add - local.get $w|57 - i64.add - i64.const 1 - i64.add - local.set $wm_frc - local.get $wp_frc - local.get $wm_frc - i64.sub - local.set $delta - local.get $buffer|4 - local.get $w_frc - local.get $w_exp - local.get $wp_frc - local.get $wp_exp - local.get $delta - local.get $sign|5 - call $~lib/util/number/genDigits + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|3 + local.get $buffer + local.set $buffer|4 + local.get $sign + local.set $sign|5 + local.get $value|3 + i64.reinterpret_f64 + local.set $uv + local.get $uv + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv + i64.const 4503599627370495 + i64.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid + i64.add + local.set $frc + local.get $exp + i32.const 1 + local.get $exp + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|12 + local.get $e + i32.const 1 + i32.sub + local.set $exp|13 + local.get $frc|12 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|12 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|12 + local.get $exp|13 + local.get $off + i32.sub + local.set $exp|13 + i32.const 1 + local.get $f + i64.const 4503599627370496 + i64.eq + i32.add + local.set $m + local.get $frc|12 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2504 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load $0 + global.set $~lib/util/number/_frc_pow + i32.const 3200 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|20 + local.get $frc + local.get $off|20 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|20 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|36 + local.get $frc_pow + local.set $v|37 + local.get $u|36 + i64.const 4294967295 + i64.and + local.set $u0|38 + local.get $v|37 + i64.const 4294967295 + i64.and + local.set $v0|39 + local.get $u|36 + i64.const 32 + i64.shr_u + local.set $u1|40 + local.get $v|37 + i64.const 32 + i64.shr_u + local.set $v1|41 + local.get $u0|38 + local.get $v0|39 + i64.mul + local.set $l|42 + local.get $u1|40 + local.get $v0|39 + i64.mul + local.get $l|42 + i64.const 32 + i64.shr_u + i64.add + local.set $t|43 + local.get $u0|38 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.const 4294967295 + i64.and + i64.add + local.set $w|44 + local.get $w|44 + i64.const 2147483647 + i64.add + local.set $w|44 + local.get $t|43 + i64.const 32 + i64.shr_u + local.set $t|43 + local.get $w|44 + i64.const 32 + i64.shr_u + local.set $w|44 + local.get $u1|40 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.add + local.get $w|44 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|46 + local.get $exp_pow + local.set $e2|47 + local.get $e1|46 + local.get $e2|47 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|49 + local.get $frc_pow + local.set $v|50 + local.get $u|49 + i64.const 4294967295 + i64.and + local.set $u0|51 + local.get $v|50 + i64.const 4294967295 + i64.and + local.set $v0|52 + local.get $u|49 + i64.const 32 + i64.shr_u + local.set $u1|53 + local.get $v|50 + i64.const 32 + i64.shr_u + local.set $v1|54 + local.get $u0|51 + local.get $v0|52 + i64.mul + local.set $l|55 + local.get $u1|53 + local.get $v0|52 + i64.mul + local.get $l|55 + i64.const 32 + i64.shr_u + i64.add + local.set $t|56 + local.get $u0|51 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.const 4294967295 + i64.and + i64.add + local.set $w|57 + local.get $w|57 + i64.const 2147483647 + i64.add + local.set $w|57 + local.get $t|56 + i64.const 32 + i64.shr_u + local.set $t|56 + local.get $w|57 + i64.const 32 + i64.shr_u + local.set $w|57 + local.get $u1|53 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.add + local.get $w|57 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|4 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|5 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 + end local.set $len local.get $buffer local.get $sign @@ -4123,10 +4164,12 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/number/F64#toString (type $f64_i32_=>_i32) (param $this f64) (param $radix i32) (result i32) local.get $this call $~lib/util/number/dtoa + return ) (func $start:resolve-ternary~anonymous|0 (type $i32_=>_i32) (param $x i32) (result i32) local.get $x @@ -4142,11 +4185,13 @@ local.get $x i32.const 3 i32.add + return ) (func $resolve-ternary/g2 (type $i32_=>_i32) (param $x i32) (result i32) local.get $x i32.const 4 i32.add + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -4581,6 +4626,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/util/number/dtoa (type $f64_=>_i32) (param $value f64) (result i32) (local $size i32) @@ -4664,5 +4710,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) ) diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 144902f809..02fcc22a7b 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -1,10 +1,10 @@ (module (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i64_i64_i32_i64_=>_i32 (func_subtype (param i64 i64 i32 i64) (result i32) func)) @@ -124,6 +124,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 37400 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 4608 + i32.load $0 + i32.gt_u + if + i32.const 1472 + i32.const 1536 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 4612 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2729,146 +2861,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 37400 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 4608 - i32.load $0 - i32.gt_u - if - i32.const 1472 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 4612 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index 2bebd1aada..26e73cbc76 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -147,6 +147,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -159,17 +160,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -181,8 +183,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -325,6 +325,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -344,6 +345,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -429,15 +431,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -464,6 +463,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -639,22 +639,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -679,16 +682,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -784,18 +790,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -819,18 +828,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -840,12 +852,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -993,22 +1008,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1053,16 +1071,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1117,10 +1138,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1236,6 +1260,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1245,15 +1270,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1314,17 +1337,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1336,22 +1357,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1424,6 +1443,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1484,8 +1504,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1530,8 +1548,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1581,8 +1597,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1664,6 +1678,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1742,6 +1757,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1757,6 +1773,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1847,16 +1864,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1889,16 +1909,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1912,46 +1935,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1988,10 +2018,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2111,30 +2144,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2205,6 +2244,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2217,6 +2257,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2279,26 +2320,24 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -2357,19 +2396,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 636 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -2397,13 +2436,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -2424,13 +2463,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -2478,14 +2514,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -2512,8 +2549,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -2534,8 +2569,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -2551,6 +2584,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -2647,6 +2681,7 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2659,12 +2694,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2735,8 +2770,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2765,6 +2798,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2807,6 +2841,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/number/Bool#toString (type $i32_i32_=>_i32) (param $this i32) (param $radix i32) (result i32) local.get $this @@ -2815,48 +2850,63 @@ else i32.const 2400 end + return ) (func $resolve-unary/Foo#plus (type $i32_=>_i32) (param $this i32) (result i32) i32.const 2464 + return ) (func $~lib/string/String#toString (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $resolve-unary/Foo#minus (type $i32_=>_i32) (param $this i32) (result i32) i32.const 2496 + return ) (func $resolve-unary/Foo#prefix_inc (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $resolve-unary/Foo#self (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $resolve-unary/Foo#prefix_dec (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $resolve-unary/Foo#not (type $i32_=>_i32) (param $this i32) (result i32) i32.const 2528 + return ) (func $resolve-unary/Foo#bitwise_not (type $i32_=>_i32) (param $this i32) (result i32) i32.const 2560 + return ) (func $resolve-unary/Foo#postfix_inc (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $resolve-unary/Foo#postfix_dec (type $i32_=>_i32) (param $this i32) (result i32) local.get $this + return ) (func $resolve-unary/Bar.prefix_inc (type $i32_=>_i32) (param $a i32) (result i32) i32.const 2592 + return ) (func $resolve-unary/Bar.prefix_dec (type $i32_=>_i32) (param $a i32) (result i32) i32.const 2624 + return ) (func $resolve-unary/Bar.postfix_inc (type $i32_=>_i32) (param $a i32) (result i32) i32.const 2656 + return ) (func $resolve-unary/Bar.postfix_dec (type $i32_=>_i32) (param $a i32) (result i32) i32.const 2688 + return ) (func $start:resolve-unary~anonymous|0 (type $none_=>_none) nop @@ -3842,6 +3892,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index add39c7076..391ca9b57f 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -145,6 +145,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 36640 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 3840 + i32.load $0 + i32.gt_u + if + i32.const 1472 + i32.const 1536 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 3844 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2496,146 +2628,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 36640 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3840 - i32.load $0 - i32.gt_u - if - i32.const 1472 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3844 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/retain-i32.debug.wat b/tests/compiler/retain-i32.debug.wat index 5197944d1d..cfff4754ed 100644 --- a/tests/compiler/retain-i32.debug.wat +++ b/tests/compiler/retain-i32.debug.wat @@ -310,7 +310,6 @@ ) (func $start:retain-i32 (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 global.get $~lib/builtins/i8.MAX_VALUE call $retain-i32/test @@ -386,8 +385,6 @@ local.get $i global.get $~lib/builtins/u8.MAX_VALUE i32.le_s - local.set $1 - local.get $1 if i32.const 0 local.get $i diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index 55dc7a538f..94ddef9687 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -63,6 +63,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -75,17 +76,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -97,8 +99,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -241,6 +241,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -260,6 +261,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -345,15 +347,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -380,6 +379,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -555,22 +555,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -595,16 +598,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -700,18 +706,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -735,18 +744,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -756,12 +768,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -909,22 +924,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -969,16 +987,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1033,10 +1054,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1152,6 +1176,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1161,15 +1186,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1230,17 +1253,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1252,22 +1273,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1340,6 +1359,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1400,8 +1420,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1446,8 +1464,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1497,8 +1513,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1580,6 +1594,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1658,6 +1673,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1673,6 +1689,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1763,16 +1780,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1805,16 +1825,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1828,46 +1851,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1904,10 +1934,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2027,30 +2060,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2121,6 +2160,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2133,6 +2173,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2195,6 +2236,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) diff --git a/tests/compiler/return.debug.wat b/tests/compiler/return.debug.wat index ff3f41fbac..96d2dbeb78 100644 --- a/tests/compiler/return.debug.wat +++ b/tests/compiler/return.debug.wat @@ -37,6 +37,7 @@ local.get $fn i32.load $0 call_indirect $0 (type $none_=>_none) + return ) (func $return/testVoidReturn (type $i32_=>_none) (param $cond i32) local.get $cond @@ -45,6 +46,7 @@ return end call $return/nop + return ) (func $~start (type $none_=>_none) call $start:return diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index ec122935be..e4bf15af24 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -63,6 +63,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -75,17 +76,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -97,8 +99,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -241,6 +241,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -260,6 +261,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -345,15 +347,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -380,6 +379,7 @@ i32.xor i32.and i32.add + return ) (func $rt/finalize/__finalize (type $i32_=>_none) (param $ptr i32) local.get $ptr @@ -571,22 +571,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -611,16 +614,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -716,18 +722,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -751,18 +760,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -772,12 +784,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -925,22 +940,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -985,16 +1003,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1049,10 +1070,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1168,6 +1192,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1177,15 +1202,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1246,17 +1269,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1268,22 +1289,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1356,6 +1375,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1420,8 +1440,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1466,8 +1484,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1517,8 +1533,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1600,6 +1614,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1678,6 +1693,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1693,6 +1709,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1783,16 +1800,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1825,16 +1845,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1848,46 +1871,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1924,10 +1954,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2047,30 +2080,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2141,6 +2180,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2153,6 +2193,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2215,10 +2256,9 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2229,8 +2269,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2244,8 +2282,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index f5fc3627ec..eb99135e58 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -82,6 +82,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34280 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1424,146 +1556,18 @@ end ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1492 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index a602b77ef6..e1235d9ec9 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -50,6 +50,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $rt/flags/test<~lib/typedarray/Int8Array> (type $i32_=>_none) (param $flags i32) i32.const 4 diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index 4a46a4e8fd..15f4832cef 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -66,6 +66,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -78,17 +79,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -100,8 +102,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -244,6 +244,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -263,6 +264,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -348,15 +350,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -383,6 +382,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -558,22 +558,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -598,16 +601,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -703,18 +709,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -738,18 +747,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -759,12 +771,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -912,22 +927,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -972,16 +990,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1036,10 +1057,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1155,6 +1179,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1164,15 +1189,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1233,17 +1256,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1255,22 +1276,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1343,6 +1362,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1403,8 +1423,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1449,8 +1467,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1500,8 +1516,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1583,6 +1597,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1661,6 +1676,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1676,6 +1692,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1766,16 +1783,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1808,16 +1828,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1831,46 +1854,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1907,10 +1937,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2030,30 +2063,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2124,6 +2163,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2136,6 +2176,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2198,6 +2239,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__pin (type $i32_=>_i32) (param $ptr i32) (result i32) (local $obj i32) @@ -2227,6 +2269,7 @@ call $~lib/rt/itcms/Object#linkTo end local.get $ptr + return ) (func $~lib/rt/itcms/__unpin (type $i32_=>_none) (param $ptr i32) (local $obj i32) @@ -2267,8 +2310,6 @@ end ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2279,8 +2320,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2294,8 +2333,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index 3df3a50899..cc3634f593 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -214,22 +214,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -254,16 +257,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -359,18 +365,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -394,18 +403,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -415,12 +427,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -568,22 +583,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -628,16 +646,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -692,10 +713,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -811,6 +835,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -820,15 +845,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -889,17 +912,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -911,22 +932,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -982,6 +1001,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -997,6 +1017,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1087,16 +1108,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1129,16 +1153,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1152,46 +1179,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1228,10 +1262,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -1351,30 +1388,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -1445,6 +1488,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -1457,6 +1501,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/tcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -1486,6 +1531,7 @@ local.get $space call $~lib/rt/tcms/Object#set:prev local.get $space + return ) (func $~lib/rt/tcms/Object#get:prev (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -1534,6 +1580,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tcms/__new (type $i32_i32_=>_i32) (param $size i32) (param $id i32) (result i32) (local $obj i32) @@ -1573,12 +1620,14 @@ local.get $obj i32.const 20 i32.add + return ) (func $~lib/rt/tcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/tcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/tcms/Object#get:next (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -1587,6 +1636,7 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/tcms/Object#unlink (type $i32_=>_none) (param $this i32) (local $next i32) @@ -1672,6 +1722,7 @@ call $~lib/rt/tcms/Object#linkTo end local.get $ptr + return ) (func $~lib/rt/tcms/__unpin (type $i32_=>_none) (param $ptr i32) (local $obj i32) @@ -1739,6 +1790,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1773,12 +1825,9 @@ (func $~lib/rt/tcms/__collect (type $none_=>_none) (local $pn i32) (local $iter i32) - (local $2 i32) (local $black i32) (local $to i32) - (local $5 i32) (local $from i32) - (local $7 i32) (local $newNext i32) i32.const 0 drop @@ -1793,8 +1842,6 @@ local.get $iter local.get $pn i32.ne - local.set $2 - local.get $2 if i32.const 1 drop @@ -1834,8 +1881,6 @@ local.get $iter local.get $to i32.ne - local.set $5 - local.get $5 if i32.const 1 drop @@ -1872,8 +1917,6 @@ local.get $iter local.get $from i32.ne - local.set $7 - local.get $7 if i32.const 1 drop diff --git a/tests/compiler/rt/runtime-minimal-export.release.wat b/tests/compiler/rt/runtime-minimal-export.release.wat index 032cee0979..6e0a7de3ea 100644 --- a/tests/compiler/rt/runtime-minimal-export.release.wat +++ b/tests/compiler/rt/runtime-minimal-export.release.wat @@ -1167,11 +1167,11 @@ (local $5 i32) (local $6 i32) i32.const 1056 - call $byn-split-outlined-A$~lib/rt/tcms/__visit + call $byn-split-outlined-A$~lib/rt/tcms/__visit_0 i32.const 1280 - call $byn-split-outlined-A$~lib/rt/tcms/__visit + call $byn-split-outlined-A$~lib/rt/tcms/__visit_0 i32.const 1376 - call $byn-split-outlined-A$~lib/rt/tcms/__visit + call $byn-split-outlined-A$~lib/rt/tcms/__visit_0 global.get $~lib/rt/tcms/pinSpace local.tee $1 i32.load $0 offset=4 @@ -1369,6 +1369,8 @@ global.set $~lib/rt/tcms/white ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) block $invalid block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String @@ -1390,8 +1392,43 @@ i32.load $0 local.tee $0 if + global.get $~lib/rt/tcms/white local.get $0 - call $byn-split-outlined-A$~lib/rt/tcms/__visit + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $1 + call $~lib/rt/tcms/Object#unlink + global.get $~lib/rt/tcms/toSpace + local.tee $0 + i32.load $0 offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/tcms/white + i32.eqz + i32.or + i32.store $0 offset=4 + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + end end return end @@ -1423,7 +1460,7 @@ i32.const 1424 global.set $~lib/rt/tcms/toSpace ) - (func $byn-split-outlined-A$~lib/rt/tcms/__visit (type $i32_=>_none) (param $0 i32) + (func $byn-split-outlined-A$~lib/rt/tcms/__visit_0 (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) global.get $~lib/rt/tcms/white diff --git a/tests/compiler/rt/runtime-stub-export.debug.wat b/tests/compiler/rt/runtime-stub-export.debug.wat index 76867e18f5..679de591d2 100644 --- a/tests/compiler/rt/runtime-stub-export.debug.wat +++ b/tests/compiler/rt/runtime-stub-export.debug.wat @@ -111,19 +111,22 @@ i32.const 4 i32.add local.set $ptr - local.get $size - local.set $size|3 - local.get $size|3 - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - i32.const 4 - i32.sub + block $~lib/rt/stub/computeSize|inlined.0 (result i32) + local.get $size + local.set $size|3 + local.get $size|3 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + br $~lib/rt/stub/computeSize|inlined.0 + end local.set $payloadSize local.get $ptr local.get $payloadSize @@ -133,6 +136,7 @@ local.get $payloadSize call $~lib/rt/common/BLOCK#set:mmInfo local.get $ptr + return ) (func $~lib/rt/common/OBJECT#set:gcInfo (type $i32_i32_=>_none) (param $this i32) (param $gcInfo i32) local.get $this @@ -192,9 +196,11 @@ local.get $ptr i32.const 16 i32.add + return ) (func $~lib/rt/stub/__pin (type $i32_=>_i32) (param $ptr i32) (result i32) local.get $ptr + return ) (func $~lib/rt/stub/__unpin (type $i32_=>_none) (param $ptr i32) nop diff --git a/tests/compiler/scoped.debug.wat b/tests/compiler/scoped.debug.wat index 982ce351c6..7b5f0c7627 100644 --- a/tests/compiler/scoped.debug.wat +++ b/tests/compiler/scoped.debug.wat @@ -22,19 +22,15 @@ ) (func $start:scoped (type $none_=>_none) (local $anotherStartFunctionLocal i32) - (local $1 i32) (local $aGlobal i32) - (local $3 i32) (local $aConstant i64) - (local $aConstant|5 f32) + (local $aConstant|3 f32) i32.const 0 local.set $anotherStartFunctionLocal loop $for-loop|0 local.get $anotherStartFunctionLocal i32.const 1 i32.lt_s - local.set $1 - local.get $1 if nop local.get $anotherStartFunctionLocal @@ -50,8 +46,6 @@ local.get $aGlobal i32.const 1 i32.lt_s - local.set $3 - local.get $3 if local.get $aGlobal drop @@ -65,7 +59,7 @@ i64.const 5 local.set $aConstant f32.const 10 - local.set $aConstant|5 + local.set $aConstant|3 i32.const 42 call $scoped/fn ) diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index c89671deda..50eff3757f 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -98,6 +98,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -110,17 +111,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -132,8 +134,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -276,6 +276,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -295,6 +296,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -380,15 +382,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -415,6 +414,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -590,22 +590,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -630,16 +633,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -735,18 +741,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -770,18 +779,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -791,12 +803,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -944,22 +959,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1004,16 +1022,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1068,10 +1089,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1187,6 +1211,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1196,15 +1221,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1265,17 +1288,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1287,22 +1308,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1375,6 +1394,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1435,8 +1455,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1481,8 +1499,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1532,8 +1548,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1615,6 +1629,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1693,6 +1708,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1708,6 +1724,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1798,16 +1815,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1840,16 +1860,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1863,46 +1886,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1939,10 +1969,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2062,30 +2095,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2156,6 +2195,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2168,6 +2208,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2230,6 +2271,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -2245,6 +2287,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2347,6 +2390,7 @@ i32.const 0 drop local.get $value + return ) (func $simd/test_v128 (type $none_=>_none) (local $ptr i32) @@ -6550,6 +6594,7 @@ v128.const i32x4 0x00000001 0x00000001 0x00000001 0x00000001 local.set $one local.get $one + return ) (func $start:simd (type $none_=>_none) (local $0 i32) @@ -6634,6 +6679,7 @@ local.get $a local.get $a i32x4.mul + return ) (func $simd/test_vars_i8x16_partial (type $i32_i32_i32_=>_v128) (param $a i32) (param $b i32) (param $c i32) (result v128) v128.const i32x4 0x03000100 0x07000504 0x0b0a0908 0x000e0d0c @@ -6643,6 +6689,7 @@ i8x16.replace_lane 6 local.get $c i8x16.replace_lane 15 + return ) (func $simd/test_vars_i8x16_full (type $i32_i32_i32_i32_i32_i32_i32_i32_i32_i32_i32_i32_i32_i32_i32_i32_=>_v128) (param $a i32) (param $b i32) (param $c i32) (param $d i32) (param $e i32) (param $f i32) (param $g i32) (param $h i32) (param $i i32) (param $k i32) (param $l i32) (param $m i32) (param $n i32) (param $o i32) (param $p i32) (param $q i32) (result v128) local.get $a @@ -6677,6 +6724,7 @@ i8x16.replace_lane 14 local.get $q i8x16.replace_lane 15 + return ) (func $simd/test_vars_i16x8_partial (type $i32_i32_i32_=>_v128) (param $a i32) (param $b i32) (param $c i32) (result v128) v128.const i32x4 0x00010000 0x00030000 0x00050000 0x00000006 @@ -6686,6 +6734,7 @@ i16x8.replace_lane 4 local.get $c i16x8.replace_lane 7 + return ) (func $simd/test_vars_i16x8_full (type $i32_i32_i32_i32_i32_i32_i32_i32_=>_v128) (param $a i32) (param $b i32) (param $c i32) (param $d i32) (param $e i32) (param $f i32) (param $g i32) (param $h i32) (result v128) local.get $a @@ -6704,6 +6753,7 @@ i16x8.replace_lane 6 local.get $h i16x8.replace_lane 7 + return ) (func $simd/test_vars_i32x4_partial (type $i32_i32_i32_=>_v128) (param $a i32) (param $b i32) (param $c i32) (result v128) v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 @@ -6713,6 +6763,7 @@ i32x4.replace_lane 2 local.get $c i32x4.replace_lane 3 + return ) (func $simd/test_vars_i32x4_full (type $i32_i32_i32_i32_=>_v128) (param $a i32) (param $b i32) (param $c i32) (param $d i32) (result v128) local.get $a @@ -6723,17 +6774,20 @@ i32x4.replace_lane 2 local.get $d i32x4.replace_lane 3 + return ) (func $simd/test_vars_i64x2_partial (type $i64_=>_v128) (param $a i64) (result v128) v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 local.get $a i64x2.replace_lane 1 + return ) (func $simd/test_vars_i64x2_full (type $i64_i64_=>_v128) (param $a i64) (param $b i64) (result v128) local.get $a i64x2.splat local.get $b i64x2.replace_lane 1 + return ) (func $simd/test_vars_f32x4_partial (type $f32_f32_f32_=>_v128) (param $a f32) (param $b f32) (param $c f32) (result v128) v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 @@ -6743,6 +6797,7 @@ f32x4.replace_lane 2 local.get $c f32x4.replace_lane 3 + return ) (func $simd/test_vars_f32x4_full (type $f32_f32_f32_f32_=>_v128) (param $a f32) (param $b f32) (param $c f32) (param $d f32) (result v128) local.get $a @@ -6753,17 +6808,20 @@ f32x4.replace_lane 2 local.get $d f32x4.replace_lane 3 + return ) (func $simd/test_vars_f64x2_partial (type $f64_=>_v128) (param $a f64) (result v128) v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 local.get $a f64x2.replace_lane 1 + return ) (func $simd/test_vars_f64x2_full (type $f64_f64_=>_v128) (param $a f64) (param $b f64) (result v128) local.get $a f64x2.splat local.get $b f64x2.replace_lane 1 + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -6935,5 +6993,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) ) diff --git a/tests/compiler/static-this.debug.wat b/tests/compiler/static-this.debug.wat index 83bfb374f0..01420c4ea1 100644 --- a/tests/compiler/static-this.debug.wat +++ b/tests/compiler/static-this.debug.wat @@ -15,6 +15,7 @@ (start $~start) (func $static-this/Foo.getBar (type $none_=>_i32) (result i32) global.get $static-this/Foo.bar + return ) (func $start:static-this (type $none_=>_none) call $static-this/Foo.getBar diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index 0eda98d24d..ca244b2282 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -69,6 +69,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -89,12 +90,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -165,8 +166,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -195,6 +194,7 @@ end end i32.const 0 + return ) (func $~lib/string/String#startsWith (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $start i32) (result i32) (local $len i32) @@ -242,6 +242,7 @@ local.get $searchLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -268,6 +269,7 @@ call $~lib/array/Array<%28i32%29=>i32>#__get i32.load $0 call_indirect $0 (type $i32_=>_i32) + return ) (func $~stack_check (type $none_=>_none) global.get $~lib/memory/__stack_pointer @@ -308,6 +310,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/array-access/stringArrayPropertyAccess (type $i32_=>_i32) (param $a i32) (result i32) (local $1 i32) @@ -334,6 +337,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/array-access/stringArrayMethodCall (type $i32_=>_i32) (param $a i32) (result i32) (local $1 i32) @@ -367,6 +371,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/array-access/stringArrayArrayPropertyAccess (type $i32_=>_i32) (param $a i32) (result i32) (local $1 i32) @@ -400,6 +405,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/array-access/stringArrayArrayMethodCall (type $i32_=>_i32) (param $a i32) (result i32) (local $1 i32) @@ -443,6 +449,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array<~lib/array/Array>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -499,6 +506,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array<~lib/string/String>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -555,6 +563,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -611,6 +620,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array<%28i32%29=>i32>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -667,6 +677,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $export:std/array-access/i32ArrayArrayElementAccess (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index dc51d0736e..88137c3fb2 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -65,6 +65,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -95,6 +96,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -103,6 +105,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -133,6 +136,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -152,6 +156,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -164,17 +169,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -186,8 +192,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -330,6 +334,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -349,6 +354,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -434,15 +440,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -469,6 +472,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -644,22 +648,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -684,16 +691,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -789,18 +799,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -824,18 +837,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -845,12 +861,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -998,22 +1017,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1058,16 +1080,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1122,10 +1147,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1241,6 +1269,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1250,15 +1279,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1319,17 +1346,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1341,22 +1366,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1429,6 +1452,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1489,8 +1513,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1535,8 +1557,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1586,8 +1606,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1669,6 +1687,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1747,6 +1766,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1762,6 +1782,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1852,16 +1873,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1894,16 +1918,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1917,46 +1944,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1993,10 +2027,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2116,30 +2153,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2210,6 +2253,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2222,6 +2266,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2284,6 +2329,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -2299,6 +2345,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2419,6 +2466,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2447,13 +2495,12 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $std/array-literal/doesntLeak (type $i32_=>_none) (param $refs i32) nop ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2464,8 +2511,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2479,8 +2524,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -2625,7 +2668,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -2643,8 +2685,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -2682,7 +2722,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -2700,8 +2739,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -3427,6 +3464,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index fadd3b93e2..c0a68bf28d 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1624,17 +1624,17 @@ i32.const 2 i32.shl i32.add - local.set $3 + local.set $2 loop $while-continue|0 local.get $1 - local.get $3 + local.get $2 i32.lt_u if local.get $1 i32.load $0 - local.tee $2 + local.tee $3 if - local.get $2 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $1 diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index eb2a677d73..a1700759a0 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -14,6 +14,7 @@ (type $i64_i32_=>_i32 (func_subtype (param i64 i32) (result i32) func)) (type $none_=>_f64 (func_subtype (result f64) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) + (type $i32_f32_i32_i32_=>_i32 (func_subtype (param i32 f32 i32 i32) (result i32) func)) (type $i32_f32_i32_=>_i32 (func_subtype (param i32 f32 i32) (result i32) func)) (type $i32_f64_i32_=>_i32 (func_subtype (param i32 f64 i32) (result i32) func)) (type $i32_i64_i32_=>_none (func_subtype (param i32 i64 i32) func)) @@ -23,7 +24,6 @@ (type $i32_i64_=>_i32 (func_subtype (param i32 i64) (result i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_f32_i32_i32_=>_none (func_subtype (param i32 i32 f32 i32 i32) func)) - (type $i32_f32_i32_i32_=>_i32 (func_subtype (param i32 f32 i32 i32) (result i32) func)) (type $i32_i32_=>_f32 (func_subtype (param i32 i32) (result f32) func)) (type $i32_i64_i32_i32_=>_none (func_subtype (param i32 i64 i32 i32) func)) (type $i64_=>_i64 (func_subtype (param i64) (result i64) func)) @@ -52,15 +52,15 @@ (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $std/array/arr (mut i32) (i32.const 0)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $std/array/i (mut i32) (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) - (global $std/array/charset i32 (i32.const 8944)) + (global $std/array/charset i32 (i32.const 9008)) (global $std/array/inputStabArr (mut i32) (i32.const 0)) (global $std/array/outputStabArr (mut i32) (i32.const 0)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) @@ -73,10 +73,10 @@ (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $~lib/builtins/i64.MIN_VALUE i64 (i64.const -9223372036854775808)) (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) - (global $~lib/rt/__rtti_base i32 (i32.const 14912)) - (global $~lib/memory/__data_end i32 (i32.const 15104)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 47872)) - (global $~lib/memory/__heap_base i32 (i32.const 47872)) + (global $~lib/rt/__rtti_base i32 (i32.const 14976)) + (global $~lib/memory/__data_end i32 (i32.const 15168)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 47936)) + (global $~lib/memory/__heap_base i32 (i32.const 47936)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") @@ -204,183 +204,183 @@ (data (i32.const 5292) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 5340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 5372) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5500) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5564) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5596) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5628) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5660) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5692) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5724) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5804) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5836) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5868) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5900) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5932) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5964) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5996) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6028) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6060) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6092) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6124) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6156) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6188) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6220) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6252) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6284) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6316) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6348) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6380) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6412) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 6540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 6604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6636) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\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 7036) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8092) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 8188) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8220) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8252) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8284) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8316) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8348) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8380) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8412) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8444) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8476) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8508) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8540) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8572) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8604) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8636) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8668) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8700) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8732) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8764) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8796) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8828) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8860) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8892) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8924) "\bc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") - (data (i32.const 9116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf\00\00\00\00") - (data (i32.const 9148) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") - (data (i32.const 9212) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9276) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9340) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9436) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9468) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9612) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9644) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9692) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9740) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9772) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") - (data (i32.const 9820) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9852) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 9916) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9964) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10012) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10076) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data (i32.const 10108) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10140) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10172) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10204) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10236) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10268) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10300) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10364) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") - (data (i32.const 10428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") - (data (i32.const 10460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00p(\00\00\90(\00\00p(\00\00\b0(\00\00\d0(\00\00\f0(\00\00\00\00\00\00") - (data (i32.const 10540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00\f0(\00\00p(\00\00p(\00\00\b0(\00\00\90(\00\00\d0(\00\00\00\00\00\00") - (data (i32.const 10588) "\1c\00\00\00\00\00\00\00\00\00\00\00#\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10620) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") - (data (i32.const 10716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") - (data (i32.const 10748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10780) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 10828) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data (i32.const 10860) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00-\002\00-\003\00\00\00") - (data (i32.const 10892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 10924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80\00\00\00\00") - (data (i32.const 10988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00_\00_\00\00\00\00\00\00\00\00\00") - (data (i32.const 11020) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11100) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") - (data (i32.const 11212) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data (i32.const 11244) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data (i32.const 11276) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11324) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11376) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11432) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data (i32.const 12876) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00,\002\00\00\00\00\00\00\00") - (data (i32.const 12956) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\01\ff\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") - (data (i32.const 13068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\80\81\80\00\00\00\00\00\00\00\00\00") - (data (i32.const 13100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00-\001\002\008\00,\00-\001\002\007\00,\00-\001\002\008\00") - (data (i32.const 13148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\01\00\ff\ff\00\00\00\00\00\00\00\00") - (data (i32.const 13180) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13228) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\80\01\ff\00\00\00\00\00\00\00\00") - (data (i32.const 13260) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00-\003\002\007\006\008\00,\00-\002\005\005\00\00\00\00\00\00\00") - (data (i32.const 13308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\80\80\ff\ff\ff\00\00\00\00") - (data (i32.const 13340) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00-\002\001\004\007\004\008\003\006\004\008\00,\00-\001\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13404) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13452) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13532) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f\00\00\00\00") - (data (i32.const 13596) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00~\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00\f0(\00\00p(\00\00p(\00\00\b0(\00\00\90(\00\00\d0(\00\00\00\00\00\00") - (data (i32.const 13804) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00\00\00") - (data (i32.const 13852) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13884) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13916) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\c00\00\0006\00\00\00\00\00\00P6\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13964) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") - (data (i32.const 13996) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data (i32.const 14028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") - (data (i32.const 14060) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\02\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\04\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 14268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") - (data (i32.const 14300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") - (data (i32.const 14332) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") - (data (i32.const 14364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\108\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") - (data (i32.const 14428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") - (data (i32.const 14460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00P8\00\00\00\00\00\00p8\00\00") - (data (i32.const 14492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") - (data (i32.const 14524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00i\00v\00e\00\00\00\00\00") - (data (i32.const 14556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00s\00i\00x\00\00\00\00\00\00\00") - (data (i32.const 14588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\b08\00\00\d08\00\00\f08\00\00") - (data (i32.const 14620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00e\00v\00e\00n\00\00\00") - (data (i32.const 14652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\0009\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14684) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\108\00\00P8\00\00\00\00\00\00p8\00\00\b08\00\00\d08\00\00\f08\00\0009\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14876) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 14912) "/\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00 \00\00\00A\00\00\00B\00\00\00\02\01\00\00\02\19\00\00\02A\00\00\82\00\00\00\02\1a\00\00\02a\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00B\00\00\00B\08\00\00\82\08\00\00\02\02\00\00\02\n\00\00\02A\00\00\02A\00\00\02A\00\00\02A\00\00\00\00\00\00") + (data (i32.const 5500) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5628) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5660) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5692) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5724) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5756) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5788) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5820) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5868) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\07\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5900) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5932) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\t\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5964) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5996) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6028) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6060) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\r\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6092) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6124) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6156) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6188) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\11\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6220) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6252) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\13\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6284) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6316) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\15\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6348) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6380) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\17\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6412) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\18\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6444) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\19\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6476) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 6604) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 6668) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6700) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 7100) "\1c\04\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8156) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 8252) "\1c\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\08\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8284) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00\1b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8316) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8348) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8380) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8412) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\1f\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8444) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8476) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00!\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8508) "\1c\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\08\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8540) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00#\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8572) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00$\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8604) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00%\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8636) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00&\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8668) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00\'\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8700) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00(\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8732) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8764) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00*\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8796) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8828) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8860) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8892) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8924) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8956) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8988) "\bc\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") + (data (i32.const 9180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf\00\00\00\00") + (data (i32.const 9212) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") + (data (i32.const 9276) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9340) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9404) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9500) "\1c\00\00\00\00\00\00\00\00\00\00\00\19\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9532) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9676) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9804) "\1c\00\00\00\00\00\00\00\00\00\00\00\1b\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9836) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") + (data (i32.const 9884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 9980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10028) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10076) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 10172) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10204) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10236) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10268) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10300) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10332) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10364) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\00<\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data (i32.const 10492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") + (data (i32.const 10524) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10556) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00\b0(\00\00\d0(\00\00\b0(\00\00\f0(\00\00\10)\00\000)\00\00\00\00\00\00") + (data (i32.const 10604) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\000)\00\00\b0(\00\00\b0(\00\00\f0(\00\00\d0(\00\00\10)\00\00\00\00\00\00") + (data (i32.const 10652) "\1c\00\00\00\00\00\00\00\00\00\00\00#\00\00\00\08\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10684) "\1c\00\00\00\00\00\00\00\00\00\00\00$\00\00\00\08\00\00\00>\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") + (data (i32.const 10780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") + (data (i32.const 10812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10844) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 10892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 10924) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\00-\002\00-\003\00\00\00") + (data (i32.const 10956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 10988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80\00\00\00\00") + (data (i32.const 11052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00_\00_\00\00\00\00\00\00\00\00\00") + (data (i32.const 11084) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11164) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11244) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") + (data (i32.const 11276) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 11308) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 11340) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11388) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11440) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11496) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 12940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12988) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00,\002\00\00\00\00\00\00\00") + (data (i32.const 13020) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\01\ff\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13100) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") + (data (i32.const 13132) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\03\00\00\00\80\81\80\00\00\00\00\00\00\00\00\00") + (data (i32.const 13164) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00-\001\002\008\00,\00-\001\002\007\00,\00-\001\002\008\00") + (data (i32.const 13212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00\01\00\ff\ff\00\00\00\00\00\00\00\00") + (data (i32.const 13244) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13292) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\80\01\ff\00\00\00\00\00\00\00\00") + (data (i32.const 13324) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00-\003\002\007\006\008\00,\00-\002\005\005\00\00\00\00\00\00\00") + (data (i32.const 13372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\00\00\00\80\80\ff\ff\ff\00\00\00\00") + (data (i32.const 13404) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00-\002\001\004\007\004\008\003\006\004\008\00,\00-\001\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13468) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13516) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13596) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f\00\00\00\00") + (data (i32.const 13660) "\9c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00~\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13820) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\000)\00\00\b0(\00\00\b0(\00\00\f0(\00\00\d0(\00\00\10)\00\00\00\00\00\00") + (data (i32.const 13868) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00\00\00") + (data (i32.const 13916) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13948) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\001\00\00p6\00\00\00\00\00\00\906\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14028) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") + (data (i32.const 14060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 14092) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") + (data (i32.const 14124) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\01\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\04\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 14332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") + (data (i32.const 14364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") + (data (i32.const 14396) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") + (data (i32.const 14428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00P8\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14460) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") + (data (i32.const 14492) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") + (data (i32.const 14524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\908\00\00\00\00\00\00\b08\00\00") + (data (i32.const 14556) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") + (data (i32.const 14588) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00i\00v\00e\00\00\00\00\00") + (data (i32.const 14620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00s\00i\00x\00\00\00\00\00\00\00") + (data (i32.const 14652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\f08\00\00\109\00\0009\00\00") + (data (i32.const 14684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00e\00v\00e\00n\00\00\00") + (data (i32.const 14716) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00p9\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14748) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00P8\00\00\908\00\00\00\00\00\00\b08\00\00\f08\00\00\109\00\0009\00\00p9\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14940) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00?\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 14976) "/\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00 \00\00\00A\00\00\00B\00\00\00\02\01\00\00\02\19\00\00\02A\00\00\82\00\00\00\02\1a\00\00\02a\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00B\00\00\00B\08\00\00\82\08\00\00\02\02\00\00\02\n\00\00\02A\00\00\02A\00\00\02A\00\00\02A\00\00\00\00\00\00") (table $0 64 64 funcref) (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/array/assertStableSortedForComplexObjects~anonymous|0 $start:std/array~anonymous|48 $start:std/array~anonymous|49 $start:std/array~anonymous|50 $start:std/array~anonymous|51 $start:std/array~anonymous|52 $start:std/array~anonymous|53 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $start:std/array~anonymous|54) (export "memory" (memory $0)) @@ -403,6 +403,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -415,17 +416,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -437,8 +439,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -581,6 +581,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -600,6 +601,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -685,15 +687,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -720,6 +719,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -895,22 +895,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -935,16 +938,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -1040,18 +1046,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1075,18 +1084,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1096,12 +1108,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1249,22 +1264,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1309,16 +1327,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1373,10 +1394,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1492,6 +1516,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1501,15 +1526,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1570,17 +1593,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1592,22 +1613,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1680,6 +1699,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1740,8 +1760,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1786,8 +1804,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1837,8 +1853,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1920,6 +1934,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1998,6 +2013,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -2013,6 +2029,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -2103,16 +2120,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2145,16 +2165,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2168,46 +2191,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2244,10 +2274,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2367,30 +2400,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2461,6 +2500,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2473,6 +2513,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2535,6 +2576,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2637,6 +2679,7 @@ else i32.const 0 end + return ) (func $std/array/Ref#set:v (type $i32_i32_=>_none) (param $this i32) (param $v i32) local.get $this @@ -2652,6 +2695,7 @@ else i32.const 0 end + return ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -2681,9 +2725,11 @@ else i32.const 0 end + return ) (func $~lib/array/Array.isArray (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 + return ) (func $~lib/array/Array.isArray<~lib/string/String> (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -2694,6 +2740,7 @@ else i32.const 0 end + return ) (func $~lib/array/Array.isArray<~lib/array/Array> (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -2704,6 +2751,7 @@ else i32.const 0 end + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -2719,6 +2767,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2817,10 +2866,12 @@ local.get $end call $~lib/util/bytes/FILL local.get $this + return ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -2847,10 +2898,10 @@ i32.const 0 drop local.get $value + return ) (func $std/array/isArraysEqual (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $len i32) (result i32) (local $i i32) - (local $4 i32) local.get $len i32.eqz if @@ -2879,8 +2930,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if i32.const 0 drop @@ -2903,6 +2952,31 @@ end end i32.const 1 + return + ) + (func $~lib/array/Array#fill@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $start i32) (param $end 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 $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $value + local.get $start + local.get $end + call $~lib/array/Array#fill ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2921,7 +2995,6 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) local.get $start i32.const 0 i32.lt_s @@ -3013,8 +3086,6 @@ local.get $start local.get $end i32.lt_s - local.set $13 - local.get $13 if local.get $ptr local.get $start @@ -3043,10 +3114,12 @@ local.get $end call $~lib/util/bytes/FILL local.get $this + return ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3073,10 +3146,10 @@ i32.const 0 drop local.get $value + return ) (func $std/array/isArraysEqual (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $len i32) (result i32) (local $i i32) - (local $4 i32) local.get $len i32.eqz if @@ -3105,8 +3178,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if i32.const 0 drop @@ -3129,6 +3200,31 @@ end end i32.const 1 + return + ) + (func $~lib/array/Array#fill@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $start i32) (param $end 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 $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $value + local.get $start + local.get $end + call $~lib/array/Array#fill ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3147,7 +3243,6 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) local.get $start i32.const 0 i32.lt_s @@ -3245,8 +3340,6 @@ local.get $start local.get $end i32.lt_s - local.set $13 - local.get $13 if local.get $ptr local.get $start @@ -3275,10 +3368,12 @@ local.get $end call $~lib/util/bytes/FILL local.get $this + return ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $value f32) @@ -3305,14 +3400,14 @@ i32.const 0 drop local.get $value + return ) (func $std/array/isArraysEqual (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $len i32) (result i32) (local $i i32) - (local $4 i32) + (local $4 f32) (local $5 f32) - (local $6 f32) (local $x f64) - (local $x|8 f64) + (local $x|7 f64) local.get $len i32.eqz if @@ -3341,8 +3436,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if block $for-continue|0 i32.const 1 @@ -3350,15 +3443,15 @@ local.get $a local.get $i call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f32.ne if (result i32) local.get $b local.get $i call $~lib/array/Array#__get - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 f32.ne else i32.const 0 @@ -3366,30 +3459,36 @@ if br $for-continue|0 end - local.get $a - local.get $i - call $~lib/array/Array#__get - f64.promote_f32 - local.set $x - local.get $x - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.0 (result i32) + local.get $a + local.get $i + call $~lib/array/Array#__get + f64.promote_f32 + local.set $x + local.get $x + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.0 + end i32.const 0 i32.ne - local.get $b - local.get $i - call $~lib/array/Array#__get - f64.promote_f32 - local.set $x|8 - local.get $x|8 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.1 (result i32) + local.get $b + local.get $i + call $~lib/array/Array#__get + f64.promote_f32 + local.set $x|7 + local.get $x|7 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.1 + end i32.const 0 i32.ne i32.ne @@ -3417,6 +3516,31 @@ end end i32.const 1 + return + ) + (func $~lib/array/Array#fill@varargs (type $i32_f32_i32_i32_=>_i32) (param $this i32) (param $value f32) (param $start i32) (param $end 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 $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $value + local.get $start + local.get $end + call $~lib/array/Array#fill ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3425,6 +3549,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:buffer (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3439,6 +3564,7 @@ i32.const 20 i32.sub call $~lib/rt/common/OBJECT#get:rtSize + return ) (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3496,6 +3622,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -3626,6 +3753,7 @@ local.get $len call $~lib/array/Array#set:length_ local.get $len + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3652,6 +3780,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#pop (type $i32_=>_i32) (param $this i32) (result i32) (local $len i32) @@ -3685,6 +3814,7 @@ local.get $len call $~lib/array/Array#set:length_ local.get $val + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3728,6 +3858,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) @@ -3766,6 +3897,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#copyWithin (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $target i32) (param $start i32) (param $end i32) (result i32) (local $ptr i32) @@ -3908,10 +4040,30 @@ i32.shl memory.copy $0 $0 local.get $this + return + ) + (func $~lib/array/Array#copyWithin@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $target i32) (param $start i32) (param $end i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $target + local.get $start + local.get $end + call $~lib/array/Array#copyWithin ) (func $std/array/isArraysEqual (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $len i32) (result i32) (local $i i32) - (local $4 i32) local.get $len i32.eqz if @@ -3940,8 +4092,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if i32.const 0 drop @@ -3964,6 +4114,7 @@ end end i32.const 1 + return ) (func $~lib/array/Array#unshift (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) (local $len i32) @@ -4000,6 +4151,7 @@ local.get $len call $~lib/array/Array#set:length_ local.get $len + return ) (func $~lib/array/Array#shift (type $i32_=>_i32) (param $this i32) (result i32) (local $len i32) @@ -4051,12 +4203,33 @@ local.get $lastIndex call $~lib/array/Array#set:length_ local.get $element + return + ) + (func $~lib/array/Array#slice@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $start + local.get $end + call $~lib/array/Array#slice ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) (local $temp i32) @@ -4090,8 +4263,6 @@ local.get $i local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -4133,23 +4304,22 @@ call $~lib/array/Array#get:length_ call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) + (local $7 i64) (local $8 i64) - (local $9 i64) (local $temp i64) + (local $10 i64) (local $11 i64) - (local $12 i64) - (local $13 i32) - (local $front|14 i32) - (local $back|15 i32) - (local $temp|16 i32) + (local $front|12 i32) + (local $back|13 i32) + (local $temp|14 i32) local.get $len i32.const 1 i32.gt_u @@ -4178,8 +4348,6 @@ i32.add local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -4193,23 +4361,23 @@ local.set $back local.get $front i64.load $0 - local.tee $8 + local.tee $7 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $8 + local.get $7 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $9 + local.tee $8 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $9 + local.get $8 i64.const 281470681808895 i64.and i64.const 16 @@ -4221,23 +4389,23 @@ local.get $front local.get $back i64.load $0 - local.tee $11 + local.tee $10 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $11 + local.get $10 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $12 + local.tee $11 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $12 + local.get $11 i64.const 281470681808895 i64.and i64.const 16 @@ -4268,15 +4436,13 @@ local.get $i local.get $hlen i32.lt_u - local.set $13 - local.get $13 if local.get $ptr local.get $i i32.const 0 i32.shl i32.add - local.set $front|14 + local.set $front|12 local.get $ptr local.get $tail local.get $i @@ -4284,16 +4450,16 @@ i32.const 0 i32.shl i32.add - local.set $back|15 - local.get $front|14 + local.set $back|13 + local.get $front|12 i32.load8_u $0 - local.set $temp|16 - local.get $front|14 - local.get $back|15 + local.set $temp|14 + local.get $front|12 + local.get $back|13 i32.load8_u $0 i32.store8 $0 - local.get $back|15 - local.get $temp|16 + local.get $back|13 + local.get $temp|14 i32.store8 $0 local.get $i i32.const 1 @@ -4311,6 +4477,7 @@ call $~lib/array/Array#get:length_ call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -4324,14 +4491,12 @@ (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) (local $temp i32) - (local $9 i32) - (local $front|10 i32) - (local $back|11 i32) - (local $temp|12 i32) + (local $front|8 i32) + (local $back|9 i32) + (local $temp|10 i32) local.get $len i32.const 1 i32.gt_u @@ -4364,8 +4529,6 @@ i32.add local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -4410,15 +4573,13 @@ local.get $i local.get $hlen i32.lt_u - local.set $9 - local.get $9 if local.get $ptr local.get $i i32.const 1 i32.shl i32.add - local.set $front|10 + local.set $front|8 local.get $ptr local.get $tail local.get $i @@ -4426,16 +4587,16 @@ i32.const 1 i32.shl i32.add - local.set $back|11 - local.get $front|10 + local.set $back|9 + local.get $front|8 i32.load16_u $0 - local.set $temp|12 - local.get $front|10 - local.get $back|11 + local.set $temp|10 + local.get $front|8 + local.get $back|9 i32.load16_u $0 i32.store16 $0 - local.get $back|11 - local.get $temp|12 + local.get $back|9 + local.get $temp|10 i32.store16 $0 local.get $i i32.const 1 @@ -4453,10 +4614,12 @@ call $~lib/array/Array#get:length_ call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -4483,13 +4646,13 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#indexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) (local $len i32) (local $4 i32) (local $5 i32) (local $ptr i32) - (local $7 i32) local.get $this call $~lib/array/Array#get:length_ local.set $len @@ -4530,8 +4693,6 @@ local.get $fromIndex local.get $len i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $fromIndex @@ -4553,13 +4714,13 @@ end end i32.const -1 + return ) (func $~lib/array/Array#indexOf (type $i32_f32_i32_=>_i32) (param $this i32) (param $value f32) (param $fromIndex i32) (result i32) (local $len i32) (local $4 i32) (local $5 i32) (local $ptr i32) - (local $7 i32) local.get $this call $~lib/array/Array#get:length_ local.set $len @@ -4600,8 +4761,6 @@ local.get $fromIndex local.get $len i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $fromIndex @@ -4623,6 +4782,7 @@ end end i32.const -1 + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -4637,7 +4797,6 @@ (local $4 i32) (local $5 i32) (local $ptr i32) - (local $7 i32) local.get $this call $~lib/array/Array#get:length_ local.set $len @@ -4678,8 +4837,6 @@ local.get $fromIndex local.get $len i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $fromIndex @@ -4701,11 +4858,11 @@ end end i32.const -1 + return ) (func $~lib/array/Array#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) (local $len i32) (local $ptr i32) - (local $5 i32) local.get $this call $~lib/array/Array#get:length_ local.set $len @@ -4742,8 +4899,6 @@ local.get $fromIndex i32.const 0 i32.ge_s - local.set $5 - local.get $5 if local.get $ptr local.get $fromIndex @@ -4765,6 +4920,7 @@ end end i32.const -1 + return ) (func $~lib/array/Array#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) block $1of1 @@ -4802,7 +4958,6 @@ (local $4 i32) (local $5 i32) (local $ptr i32) - (local $7 i32) (local $elem f32) i32.const 1 drop @@ -4846,8 +5001,6 @@ local.get $fromIndex local.get $len i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $fromIndex @@ -4889,7 +5042,6 @@ (local $4 i32) (local $5 i32) (local $ptr i32) - (local $7 i32) (local $elem f64) i32.const 1 drop @@ -4933,8 +5085,6 @@ local.get $fromIndex local.get $len i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $fromIndex @@ -4971,6 +5121,25 @@ i32.const 0 return ) + (func $~lib/array/Array#splice@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $deleteCount 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $deleteCount + end + local.get $this + local.get $start + local.get $deleteCount + call $~lib/array/Array#splice + ) (func $std/array/Ref#get:v (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 @@ -5007,6 +5176,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this @@ -5065,7 +5235,6 @@ (local $len i32) (local $4 i32) (local $5 i32) - (local $6 i32) i32.const 0 local.set $i local.get $this @@ -5083,8 +5252,6 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 if local.get $this call $~lib/array/Array#get:dataStart @@ -5112,6 +5279,7 @@ end end i32.const -1 + return ) (func $start:std/array~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5131,6 +5299,7 @@ local.get $value i32.const 100 i32.eq + return ) (func $start:std/array~anonymous|4 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5144,6 +5313,7 @@ local.get $value i32.const 100 i32.eq + return ) (func $start:std/array~anonymous|6 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5152,7 +5322,6 @@ ) (func $~lib/array/Array#findLastIndex (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $i i32) - (local $3 i32) local.get $this call $~lib/array/Array#get:length_ i32.const 1 @@ -5162,8 +5331,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $3 - local.get $3 if local.get $this call $~lib/array/Array#get:dataStart @@ -5191,6 +5358,7 @@ end end i32.const -1 + return ) (func $start:std/array~anonymous|7 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5209,6 +5377,7 @@ local.get $value i32.const 100 i32.eq + return ) (func $start:std/array~anonymous|10 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5220,7 +5389,6 @@ (local $len i32) (local $4 i32) (local $5 i32) - (local $6 i32) i32.const 0 local.set $i local.get $this @@ -5238,8 +5406,6 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 if local.get $this call $~lib/array/Array#get:dataStart @@ -5268,6 +5434,7 @@ end end i32.const 1 + return ) (func $start:std/array~anonymous|11 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5282,6 +5449,7 @@ local.get $value i32.const 10 i32.lt_s + return ) (func $start:std/array~anonymous|13 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5295,6 +5463,7 @@ local.get $value i32.const 3 i32.lt_s + return ) (func $start:std/array~anonymous|15 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5306,7 +5475,6 @@ (local $len i32) (local $4 i32) (local $5 i32) - (local $6 i32) i32.const 0 local.set $i local.get $this @@ -5324,8 +5492,6 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 if local.get $this call $~lib/array/Array#get:dataStart @@ -5353,6 +5519,7 @@ end end i32.const 0 + return ) (func $start:std/array~anonymous|16 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5367,6 +5534,7 @@ local.get $value i32.const 10 i32.gt_s + return ) (func $start:std/array~anonymous|18 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -5380,6 +5548,7 @@ local.get $value i32.const 3 i32.gt_s + return ) (func $start:std/array~anonymous|20 (type $i32_i32_i32_=>_none) (param $value i32) (param $$1 i32) (param $$2 i32) global.get $std/array/i @@ -5392,7 +5561,6 @@ (local $len i32) (local $4 i32) (local $5 i32) - (local $6 i32) i32.const 0 local.set $i local.get $this @@ -5410,8 +5578,6 @@ i32.lt_s select i32.lt_s - local.set $6 - local.get $6 if local.get $this call $~lib/array/Array#get:dataStart @@ -5462,13 +5628,9 @@ ) (func $start:std/array~anonymous|24 (type $i32_i32_i32_=>_none) (param $value i32) (param $index i32) (param $array i32) (local $i i32) - (local $4 i32) + (local $i|4 i32) (local $i|5 i32) - (local $6 i32) - (local $i|7 i32) - (local $8 i32) - (local $i|9 i32) - (local $10 i32) + (local $i|6 i32) local.get $index i32.const 0 i32.eq @@ -5479,8 +5641,6 @@ local.get $i i32.const 4 i32.lt_s - local.set $4 - local.get $4 if local.get $array call $~lib/array/Array#pop @@ -5493,65 +5653,59 @@ end end i32.const 0 - local.set $i|5 + local.set $i|4 loop $for-loop|1 - local.get $i|5 + local.get $i|4 i32.const 100 i32.lt_s - local.set $6 - local.get $6 if local.get $array i32.const 100 - local.get $i|5 + local.get $i|4 i32.add call $~lib/array/Array#push drop - local.get $i|5 + local.get $i|4 i32.const 1 i32.add - local.set $i|5 + local.set $i|4 br $for-loop|1 end end i32.const 0 - local.set $i|7 + local.set $i|5 loop $for-loop|2 - local.get $i|7 + local.get $i|5 i32.const 100 i32.lt_s - local.set $8 - local.get $8 if local.get $array call $~lib/array/Array#pop drop - local.get $i|7 + local.get $i|5 i32.const 1 i32.add - local.set $i|7 + local.set $i|5 br $for-loop|2 end end i32.const 0 - local.set $i|9 + local.set $i|6 loop $for-loop|3 - local.get $i|9 + local.get $i|6 i32.const 100 i32.lt_s - local.set $10 - local.get $10 if local.get $array - local.get $i|9 + local.get $i|6 i32.const 200 i32.add call $~lib/array/Array#push drop - local.get $i|9 + local.get $i|6 i32.const 1 i32.add - local.set $i|9 + local.set $i|6 br $for-loop|3 end end @@ -5630,24 +5784,21 @@ unreachable ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -5667,14 +5818,14 @@ i32.const 100 i32.rem_u local.set $d2 - i32.const 6636 + i32.const 6700 local.get $d1 i32.const 2 i32.shl i32.add i64.load32_u $0 local.set $digits1 - i32.const 6636 + i32.const 6700 local.get $d2 i32.const 2 i32.shl @@ -5706,19 +5857,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset - i32.const 6636 - local.get $d1|11 + i32.const 6700 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -5740,19 +5891,19 @@ i32.const 2 i32.sub local.set $offset - i32.const 6636 + i32.const 6700 local.get $num i32.const 2 i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -5773,13 +5924,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -5790,7 +5938,7 @@ i32.const 1 i32.shl i32.add - i32.const 7056 + i32.const 7120 local.get $num i32.wrap_i64 i32.const 255 @@ -5812,7 +5960,7 @@ i32.and if local.get $buffer - i32.const 7056 + i32.const 7120 local.get $num i32.wrap_i64 i32.const 6 @@ -5827,14 +5975,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -5861,8 +6010,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -5883,8 +6030,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -5900,6 +6045,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -5937,7 +6083,7 @@ i32.const 1 i32.shl i32.add - i32.const 8112 + i32.const 8176 local.get $num local.get $mask i64.and @@ -5971,7 +6117,7 @@ i32.const 1 i32.shl i32.add - i32.const 8112 + i32.const 8176 local.get $num local.get $q local.get $base @@ -5996,6 +6142,7 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return ) (func $start:std/array~anonymous|25 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -6020,6 +6167,7 @@ i32.add global.set $std/array/i local.get $value + return ) (func $start:std/array~anonymous|28 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) global.get $std/array/i @@ -6027,6 +6175,7 @@ i32.add global.set $std/array/i local.get $value + return ) (func $start:std/array~anonymous|29 (type $i32_i32_i32_=>_i32) (param $value i32) (param $_ i32) (param $array i32) (result i32) local.get $array @@ -6037,6 +6186,7 @@ i32.add global.set $std/array/i local.get $value + return ) (func $start:std/array~anonymous|30 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -6055,6 +6205,7 @@ local.get $value i32.const 2 i32.ge_s + return ) (func $start:std/array~anonymous|32 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) global.get $std/array/i @@ -6064,6 +6215,7 @@ local.get $value i32.const 2 i32.ge_s + return ) (func $start:std/array~anonymous|33 (type $i32_i32_i32_=>_i32) (param $value i32) (param $_ i32) (param $array i32) (result i32) local.get $array @@ -6076,6 +6228,7 @@ local.get $value i32.const 2 i32.ge_s + return ) (func $start:std/array~anonymous|34 (type $i32_i32_i32_i32_=>_i32) (param $prev i32) (param $current i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $prev @@ -6088,7 +6241,6 @@ (local $len i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $initialValue local.set $acc i32.const 0 @@ -6108,8 +6260,6 @@ i32.lt_s select i32.lt_s - local.set $8 - local.get $8 if local.get $acc local.get $this @@ -6135,6 +6285,7 @@ end end local.get $acc + return ) (func $start:std/array~anonymous|35 (type $i32_i32_i32_i32_=>_i32) (param $prev i32) (param $current i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $prev @@ -6157,7 +6308,6 @@ (local $len i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $initialValue local.set $acc i32.const 0 @@ -6177,8 +6327,6 @@ i32.lt_s select i32.lt_s - local.set $8 - local.get $8 if local.get $acc local.get $this @@ -6204,6 +6352,7 @@ end end local.get $acc + return ) (func $start:std/array~anonymous|37 (type $i32_i32_i32_i32_=>_i32) (param $prev i32) (param $current i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $prev @@ -6223,6 +6372,7 @@ local.get $prev local.get $current i32.add + return ) (func $start:std/array~anonymous|39 (type $i32_i32_i32_i32_=>_i32) (param $prev i32) (param $current i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $prev @@ -6236,6 +6386,7 @@ local.get $prev local.get $current i32.add + return ) (func $start:std/array~anonymous|41 (type $i32_i32_i32_i32_=>_i32) (param $prev i32) (param $current i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $prev @@ -6245,7 +6396,6 @@ (func $~lib/array/Array#reduceRight (type $i32_i32_i32_=>_i32) (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) (local $i i32) - (local $5 i32) local.get $initialValue local.set $acc local.get $this @@ -6257,8 +6407,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $5 - local.get $5 if local.get $acc local.get $this @@ -6284,6 +6432,7 @@ end end local.get $acc + return ) (func $start:std/array~anonymous|42 (type $i32_i32_i32_i32_=>_i32) (param $prev i32) (param $current i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $prev @@ -6303,7 +6452,6 @@ (func $~lib/array/Array#reduceRight (type $i32_i32_i32_=>_i32) (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) (local $i i32) - (local $5 i32) local.get $initialValue local.set $acc local.get $this @@ -6315,8 +6463,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $5 - local.get $5 if local.get $acc local.get $this @@ -6342,6 +6488,7 @@ end end local.get $acc + return ) (func $start:std/array~anonymous|44 (type $i32_i32_i32_i32_=>_i32) (param $prev i32) (param $current i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $prev @@ -6361,6 +6508,7 @@ local.get $prev local.get $current i32.add + return ) (func $start:std/array~anonymous|46 (type $i32_i32_i32_i32_=>_i32) (param $prev i32) (param $current i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $prev @@ -6374,6 +6522,7 @@ local.get $prev local.get $current i32.add + return ) (func $~lib/math/murmurHash3 (type $i64_=>_i64) (param $h i64) (result i64) local.get $h @@ -6403,6 +6552,7 @@ i64.xor local.set $h local.get $h + return ) (func $~lib/math/splitMix32 (type $i32_=>_i32) (param $h i32) (result i32) local.get $h @@ -6438,6 +6588,7 @@ i32.const 14 i32.shr_u i32.xor + return ) (func $~lib/math/NativeMath.seedRandom (type $i64_=>_none) (param $value i64) local.get $value @@ -6498,14 +6649,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a f32) (local $b f32) (local $min f32) (local $max f32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -6537,8 +6685,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -6582,8 +6728,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -6632,8 +6776,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -6687,11 +6829,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp f32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -6751,8 +6890,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -6767,8 +6904,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -6835,8 +6970,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -6847,6 +6980,7 @@ end end local.get $j + return ) (func $~lib/util/sort/nodePower (type $i32_i32_i32_i32_i32_=>_i32) (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) @@ -6897,15 +7031,13 @@ i64.xor i32.wrap_i64 i32.clz + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a f32) (local $b f32) local.get $m @@ -6924,8 +7056,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -6956,8 +7086,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -6986,8 +7114,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -7059,28 +7185,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -7203,12 +7325,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.0 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.0 + end i32.const 2 i32.add local.set $lgPlus2 @@ -7231,8 +7356,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -7272,13 +7395,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -7297,8 +7420,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -7321,15 +7442,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -7348,16 +7469,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -7370,7 +7489,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -7384,17 +7503,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -7422,29 +7541,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -7456,10 +7573,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -7476,6 +7593,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $f32_f32_=>_i32) (param $a f32) (param $b f32) (result i32) (local $ia i32) @@ -7509,18 +7627,16 @@ local.get $ib i32.lt_s i32.sub + return ) (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a f64) (local $b f64) (local $min f64) (local $max f64) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -7552,8 +7668,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -7597,8 +7711,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -7647,8 +7759,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -7702,11 +7812,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp f64) - (local $9 i32) local.get $i local.get $right i32.eq @@ -7766,8 +7873,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -7782,8 +7887,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -7850,8 +7953,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -7862,15 +7963,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a f64) (local $b f64) local.get $m @@ -7889,8 +7988,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -7921,8 +8018,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -7951,8 +8046,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -8024,28 +8117,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -8168,12 +8257,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.1 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.1 + end i32.const 2 i32.add local.set $lgPlus2 @@ -8196,8 +8288,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -8237,13 +8327,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -8262,8 +8352,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -8286,15 +8374,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -8313,16 +8401,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -8335,7 +8421,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -8349,17 +8435,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -8387,29 +8473,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -8421,10 +8505,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -8441,6 +8525,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $f64_f64_=>_i32) (param $a f64) (param $b f64) (result i32) (local $ia i64) @@ -8474,10 +8559,12 @@ local.get $ib i64.lt_s i32.sub + return ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $value f64) @@ -8504,14 +8591,14 @@ i32.const 0 drop local.get $value + return ) (func $std/array/isArraysEqual (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $len i32) (result i32) (local $i i32) - (local $4 i32) + (local $4 f64) (local $5 f64) - (local $6 f64) (local $x f64) - (local $x|8 f64) + (local $x|7 f64) local.get $len i32.eqz if @@ -8540,8 +8627,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if block $for-continue|0 i32.const 1 @@ -8549,15 +8634,15 @@ local.get $a local.get $i call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.ne if (result i32) local.get $b local.get $i call $~lib/array/Array#__get - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 f64.ne else i32.const 0 @@ -8565,28 +8650,34 @@ if br $for-continue|0 end - local.get $a - local.get $i - call $~lib/array/Array#__get - local.set $x - local.get $x - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.2 (result i32) + local.get $a + local.get $i + call $~lib/array/Array#__get + local.set $x + local.get $x + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.2 + end i32.const 0 i32.ne - local.get $b - local.get $i - call $~lib/array/Array#__get - local.set $x|8 - local.get $x|8 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.3 (result i32) + local.get $b + local.get $i + call $~lib/array/Array#__get + local.set $x|7 + local.get $x|7 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.3 + end i32.const 0 i32.ne i32.ne @@ -8614,18 +8705,16 @@ end end i32.const 1 + return ) (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -8657,8 +8746,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8702,8 +8789,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -8752,8 +8837,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -8807,11 +8890,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -8871,8 +8951,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -8887,8 +8965,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8955,8 +9031,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -8967,15 +9041,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -8994,8 +9066,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -9026,8 +9096,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -9056,8 +9124,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -9129,28 +9195,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -9273,12 +9335,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.2 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.2 + end i32.const 2 i32.add local.set $lgPlus2 @@ -9301,8 +9366,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -9342,13 +9405,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -9367,8 +9430,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -9391,15 +9452,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -9418,16 +9479,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -9440,7 +9499,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -9454,17 +9513,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -9492,29 +9551,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -9526,10 +9583,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -9546,6 +9603,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -9555,14 +9613,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -9594,8 +9649,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9639,8 +9692,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -9689,8 +9740,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -9744,11 +9793,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -9808,8 +9854,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -9824,8 +9868,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9892,8 +9934,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -9904,15 +9944,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -9931,8 +9969,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -9963,8 +9999,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -9993,8 +10027,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -10066,28 +10098,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -10210,12 +10238,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.3 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.3 + end i32.const 2 i32.add local.set $lgPlus2 @@ -10238,8 +10269,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -10279,13 +10308,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -10304,8 +10333,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -10328,15 +10355,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -10355,16 +10382,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -10377,7 +10402,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -10391,17 +10416,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -10429,29 +10454,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -10463,10 +10486,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -10483,6 +10506,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -10544,6 +10568,7 @@ f64.reinterpret_i64 f64.const 1 f64.sub + return ) (func $~lib/util/sort/COMPARATOR~anonymous|1 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -10553,7 +10578,6 @@ (func $std/array/isSorted (type $i32_i32_=>_i32) (param $data i32) (param $comparator i32) (result i32) (local $i i32) (local $len i32) - (local $4 i32) i32.const 1 local.set $i local.get $data @@ -10563,8 +10587,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $data local.get $i @@ -10593,11 +10615,33 @@ end end i32.const 1 + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 offset=12 ) + (func $~lib/array/Array#slice@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $start + local.get $end + call $~lib/array/Array#slice + ) (func $std/array/Dim#get:height (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 @@ -10612,14 +10656,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10659,8 +10700,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -10708,8 +10747,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -10760,8 +10797,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -10823,10 +10858,7 @@ (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) global.get $~lib/memory/__stack_pointer @@ -10853,8 +10885,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -10885,8 +10915,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -10915,8 +10943,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if global.get $~lib/memory/__stack_pointer local.get $buffer @@ -10996,28 +11022,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -11175,12 +11197,15 @@ global.set $~lib/memory/__stack_pointer return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.4 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.4 + end i32.const 2 i32.add local.set $lgPlus2 @@ -11203,8 +11228,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -11244,13 +11267,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -11269,8 +11292,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -11293,15 +11314,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -11320,16 +11341,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -11342,7 +11361,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -11356,17 +11375,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -11394,29 +11413,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -11428,10 +11445,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -11452,10 +11469,12 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $std/array/Dim#get:width (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -11576,14 +11595,11 @@ (func $~lib/util/sort/insertionSort<~lib/array/Array> (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11623,8 +11639,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -11672,8 +11686,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -11724,8 +11736,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -11787,10 +11797,7 @@ (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) global.get $~lib/memory/__stack_pointer @@ -11817,8 +11824,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -11849,8 +11854,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -11879,8 +11882,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if global.get $~lib/memory/__stack_pointer local.get $buffer @@ -11960,28 +11961,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -12139,12 +12136,15 @@ global.set $~lib/memory/__stack_pointer return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.5 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.5 + end i32.const 2 i32.add local.set $lgPlus2 @@ -12167,8 +12167,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -12208,13 +12206,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -12233,8 +12231,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -12257,15 +12253,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -12284,16 +12280,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -12306,7 +12300,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -12320,17 +12314,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -12358,29 +12352,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -12392,10 +12384,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns<~lib/array/Array> end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -12416,10 +12408,12 @@ local.get $comparator call $~lib/util/sort/SORT<~lib/array/Array> local.get $this + return ) (func $~lib/array/Array<~lib/array/Array>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array<~lib/array/Array>#get:length_ + return ) (func $~lib/array/Array>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -12523,14 +12517,11 @@ (func $~lib/util/sort/insertionSort> (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -12570,8 +12561,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -12619,8 +12608,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -12671,8 +12658,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -12734,10 +12719,7 @@ (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) global.get $~lib/memory/__stack_pointer @@ -12764,8 +12746,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -12796,8 +12776,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -12826,8 +12804,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if global.get $~lib/memory/__stack_pointer local.get $buffer @@ -12907,28 +12883,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13086,12 +13058,15 @@ global.set $~lib/memory/__stack_pointer return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.6 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.6 + end i32.const 2 i32.add local.set $lgPlus2 @@ -13114,8 +13089,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -13155,13 +13128,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -13180,8 +13153,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -13204,15 +13175,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -13231,16 +13202,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -13253,7 +13222,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -13267,17 +13236,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -13305,29 +13274,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -13339,10 +13306,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns> end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -13363,10 +13330,12 @@ local.get $comparator call $~lib/util/sort/SORT> local.get $this + return ) (func $~lib/array/Array>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array>#get:length_ + return ) (func $~lib/array/Array<~lib/string/String|null>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -13379,14 +13348,11 @@ (func $~lib/util/sort/insertionSort<~lib/string/String|null> (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -13426,8 +13392,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -13475,8 +13439,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -13527,8 +13489,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -13590,10 +13550,7 @@ (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) global.get $~lib/memory/__stack_pointer @@ -13620,8 +13577,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -13652,8 +13607,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -13682,8 +13635,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if global.get $~lib/memory/__stack_pointer local.get $buffer @@ -13763,28 +13714,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13942,12 +13889,15 @@ global.set $~lib/memory/__stack_pointer return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.7 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.7 + end i32.const 2 i32.add local.set $lgPlus2 @@ -13970,8 +13920,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -14011,13 +13959,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -14036,8 +13984,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -14060,15 +14006,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -14087,16 +14033,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -14109,7 +14053,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -14123,17 +14067,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -14161,29 +14105,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -14195,10 +14137,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns<~lib/string/String|null> end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -14219,10 +14161,12 @@ local.get $comparator call $~lib/util/sort/SORT<~lib/string/String|null> local.get $this + return ) (func $~lib/array/Array<~lib/string/String|null>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array<~lib/string/String|null>#get:length_ + return ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -14231,12 +14175,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -14307,8 +14251,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -14337,6 +14279,7 @@ end end i32.const 0 + return ) (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $alen i32) @@ -14413,6 +14356,7 @@ local.get $blen i32.sub end + return ) (func $std/array/assertSorted<~lib/string/String|null>@varargs (type $i32_i32_=>_none) (param $arr i32) (param $comparator i32) global.get $~lib/memory/__stack_pointer @@ -14441,7 +14385,7 @@ drop i32.const 1 drop - i32.const 10608 + i32.const 10672 br $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 end local.tee $comparator @@ -14496,12 +14440,14 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/string/String.__ne (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String.__eq i32.eqz + return ) (func $~lib/array/Array<~lib/string/String>#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -14531,6 +14477,7 @@ local.get $left local.get $right call $~lib/string/String#concat + return ) (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -14590,14 +14537,11 @@ (func $~lib/util/sort/insertionSort<~lib/string/String> (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14637,8 +14581,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -14686,8 +14628,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -14738,8 +14678,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -14801,10 +14739,7 @@ (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) global.get $~lib/memory/__stack_pointer @@ -14831,8 +14766,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -14863,8 +14796,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -14893,8 +14824,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if global.get $~lib/memory/__stack_pointer local.get $buffer @@ -14974,28 +14903,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -15153,12 +15078,15 @@ global.set $~lib/memory/__stack_pointer return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.8 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.8 + end i32.const 2 i32.add local.set $lgPlus2 @@ -15181,8 +15109,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -15222,13 +15148,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -15247,8 +15173,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -15271,15 +15195,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -15298,16 +15222,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -15320,7 +15242,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -15334,17 +15256,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -15372,29 +15294,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -15406,10 +15326,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns<~lib/string/String> end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -15430,10 +15350,12 @@ local.get $comparator call $~lib/util/sort/SORT<~lib/string/String> local.get $this + return ) (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array<~lib/string/String>#get:length_ + return ) (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $alen i32) @@ -15510,6 +15432,7 @@ local.get $blen i32.sub end + return ) (func $std/array/assertSorted<~lib/string/String>@varargs (type $i32_i32_=>_none) (param $arr i32) (param $comparator i32) global.get $~lib/memory/__stack_pointer @@ -15538,7 +15461,7 @@ drop i32.const 1 drop - i32.const 10640 + i32.const 10704 br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 end local.tee $comparator @@ -15669,6 +15592,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -15753,6 +15677,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -15782,32 +15707,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $15 i32) (local $d i32) + (local $16 i32) (local $17 i32) - (local $18 i32) (local $tmp i64) - (local $buffer|20 i32) - (local $len|21 i32) - (local $delta|22 i64) + (local $buffer|19 i32) + (local $len|20 i32) + (local $delta|21 i64) (local $rest i64) (local $ten_kappa i64) (local $wp_w i64) (local $lastp i32) (local $digit i32) + (local $d|27 i64) (local $28 i32) - (local $29 i32) - (local $d|30 i64) - (local $31 i32) - (local $buffer|32 i32) - (local $len|33 i32) - (local $delta|34 i64) - (local $rest|35 i64) - (local $ten_kappa|36 i64) - (local $wp_w|37 i64) - (local $lastp|38 i32) - (local $digit|39 i32) - (local $40 i32) + (local $buffer|29 i32) + (local $len|30 i32) + (local $delta|31 i64) + (local $rest|32 i64) + (local $ten_kappa|33 i64) + (local $wp_w|34 i64) + (local $lastp|35 i32) + (local $digit|36 i32) i32.const 0 local.get $mp_exp i32.sub @@ -15844,8 +15765,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $15 - local.get $15 if block $break|1 block $case10|1 @@ -15860,44 +15779,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $17 - local.get $17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -16009,11 +15928,11 @@ if local.get $buffer local.get $len - local.tee $18 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $18 + local.get $17 i32.const 1 i32.shl i32.add @@ -16045,14 +15964,14 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $buffer|20 + local.set $buffer|19 local.get $len - local.set $len|21 + local.set $len|20 local.get $delta - local.set $delta|22 + local.set $delta|21 local.get $tmp local.set $rest - i32.const 12304 + i32.const 12368 local.get $kappa i32.const 2 i32.shl @@ -16064,8 +15983,8 @@ local.set $ten_kappa local.get $wp_w_frc local.set $wp_w - local.get $buffer|20 - local.get $len|21 + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 @@ -16080,7 +15999,7 @@ local.get $wp_w i64.lt_u if (result i32) - local.get $delta|22 + local.get $delta|21 local.get $rest i64.sub local.get $ten_kappa @@ -16110,8 +16029,6 @@ else i32.const 0 end - local.set $28 - local.get $28 if local.get $digit i32.const 1 @@ -16135,8 +16052,6 @@ end loop $while-continue|4 i32.const 1 - local.set $29 - local.get $29 if local.get $p2 i64.const 10 @@ -16150,8 +16065,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d|30 - local.get $d|30 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -16160,16 +16075,16 @@ if local.get $buffer local.get $len - local.tee $31 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $31 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d|30 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and @@ -16193,7 +16108,7 @@ i32.add global.set $~lib/util/number/_K local.get $wp_w_frc - i32.const 12304 + i32.const 12368 i32.const 0 local.get $kappa i32.sub @@ -16204,79 +16119,77 @@ i64.mul local.set $wp_w_frc local.get $buffer - local.set $buffer|32 + local.set $buffer|29 local.get $len - local.set $len|33 + local.set $len|30 local.get $delta - local.set $delta|34 + local.set $delta|31 local.get $p2 - local.set $rest|35 + local.set $rest|32 local.get $one_frc - local.set $ten_kappa|36 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $wp_w|37 - local.get $buffer|32 - local.get $len|33 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $lastp|38 - local.get $lastp|38 + local.set $lastp|35 + local.get $lastp|35 i32.load16_u $0 - local.set $digit|39 + local.set $digit|36 loop $while-continue|6 - local.get $rest|35 - local.get $wp_w|37 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $delta|34 - local.get $rest|35 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $ten_kappa|36 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $wp_w|37 - local.get $rest|35 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $40 - local.get $40 if - local.get $digit|39 + local.get $digit|36 i32.const 1 i32.sub - local.set $digit|39 - local.get $rest|35 - local.get $ten_kappa|36 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $rest|35 + local.set $rest|32 br $while-continue|6 end end - local.get $lastp|38 - local.get $digit|39 + local.get $lastp|35 + local.get $digit|36 i32.store16 $0 local.get $len return @@ -16289,26 +16202,24 @@ (func $~lib/util/number/prettify (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) (local $i i32) - (local $5 i32) (local $ptr i32) (local $offset i32) - (local $i|8 i32) - (local $9 i32) - (local $buffer|10 i32) - (local $k|11 i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) (local $sign i32) (local $decimals i32) - (local $buffer|14 i32) + (local $buffer|12 i32) (local $num i32) - (local $offset|16 i32) + (local $offset|14 i32) (local $len i32) - (local $buffer|18 i32) - (local $k|19 i32) - (local $sign|20 i32) - (local $decimals|21 i32) - (local $buffer|22 i32) - (local $num|23 i32) - (local $offset|24 i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -16349,8 +16260,6 @@ local.get $i local.get $kk i32.lt_s - local.set $5 - local.get $5 if local.get $buffer local.get $i @@ -16454,25 +16363,23 @@ i32.or i32.store $0 i32.const 2 - local.set $i|8 + local.set $i|7 loop $for-loop|1 - local.get $i|8 + local.get $i|7 local.get $offset i32.lt_s - local.set $9 - local.get $9 if local.get $buffer - local.get $i|8 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 $0 - local.get $i|8 + local.get $i|7 i32.const 1 i32.add - local.set $i|8 + local.set $i|7 br $for-loop|1 end end @@ -16488,51 +16395,54 @@ local.get $buffer i32.const 101 i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $buffer|10 - local.get $kk - i32.const 1 - i32.sub - local.set $k|11 - local.get $k|11 - i32.const 0 - i32.lt_s - local.set $sign - local.get $sign - if - i32.const 0 - local.get $k|11 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $k|11 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 $0 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $k|11 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals - local.get $buffer|10 - local.set $buffer|14 - local.get $k|11 - local.set $num - local.get $decimals - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num - local.get $offset|16 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|10 - i32.const 45 - i32.const 43 - local.get $sign - select - i32.store16 $0 - local.get $decimals local.set $length local.get $length i32.const 2 @@ -16562,53 +16472,56 @@ i32.const 101 i32.store16 $0 offset=2 local.get $length - local.get $buffer - local.get $len - i32.add - i32.const 4 - i32.add - local.set $buffer|18 - local.get $kk - i32.const 1 - i32.sub - local.set $k|19 - local.get $k|19 - i32.const 0 - i32.lt_s - local.set $sign|20 - local.get $sign|20 - if - i32.const 0 - local.get $k|19 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $k|19 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 $0 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $k|19 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals|21 - local.get $buffer|18 - local.set $buffer|22 - local.get $k|19 - local.set $num|23 - local.get $decimals|21 - local.set $offset|24 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|22 - local.get $num|23 - local.get $offset|24 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|18 - i32.const 45 - i32.const 43 - local.get $sign|20 - select - i32.store16 $0 - local.get $decimals|21 i32.add local.set $length local.get $length @@ -16697,375 +16610,393 @@ i32.const 45 i32.store16 $0 end - local.get $value - local.set $value|3 - local.get $buffer - local.set $buffer|4 - local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|12 - local.get $e - i32.const 1 - i32.sub - local.set $exp|13 - local.get $frc|12 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|12 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|12 - local.get $exp|13 - local.get $off - i32.sub - local.set $exp|13 - i32.const 1 - local.get $f - i64.const 4503599627370496 - i64.eq - i32.add - local.set $m - local.get $frc|12 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 11432 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 12128 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $frc - i64.clz - i32.wrap_i64 - local.set $off|20 - local.get $frc - local.get $off|20 - i64.extend_i32_s - i64.shl - local.set $frc - local.get $exp - local.get $off|20 - i32.sub - local.set $exp - global.get $~lib/util/number/_frc_pow - local.set $frc_pow - global.get $~lib/util/number/_exp_pow - local.set $exp_pow - local.get $frc - local.set $u - local.get $frc_pow - local.set $v - local.get $u - i64.const 4294967295 - i64.and - local.set $u0 - local.get $v - i64.const 4294967295 - i64.and - local.set $v0 - local.get $u - i64.const 32 - i64.shr_u - local.set $u1 - local.get $v - i64.const 32 - i64.shr_u - local.set $v1 - local.get $u0 - local.get $v0 - i64.mul - local.set $l - local.get $u1 - local.get $v0 - i64.mul - local.get $l - i64.const 32 - i64.shr_u - i64.add - local.set $t - local.get $u0 - local.get $v1 - i64.mul - local.get $t - i64.const 4294967295 - i64.and - i64.add - local.set $w - local.get $w - i64.const 2147483647 - i64.add - local.set $w - local.get $t - i64.const 32 - i64.shr_u - local.set $t - local.get $w - i64.const 32 - i64.shr_u - local.set $w - local.get $u1 - local.get $v1 - i64.mul - local.get $t - i64.add - local.get $w - i64.add - local.set $w_frc - local.get $exp - local.set $e1 - local.get $exp_pow - local.set $e2 - local.get $e1 - local.get $e2 - i32.add - i32.const 64 - i32.add - local.set $w_exp - global.get $~lib/util/number/_frc_plus - local.set $u|36 - local.get $frc_pow - local.set $v|37 - local.get $u|36 - i64.const 4294967295 - i64.and - local.set $u0|38 - local.get $v|37 - i64.const 4294967295 - i64.and - local.set $v0|39 - local.get $u|36 - i64.const 32 - i64.shr_u - local.set $u1|40 - local.get $v|37 - i64.const 32 - i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 - i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 - i64.mul - local.get $l|42 - i64.const 32 - i64.shr_u - i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.const 4294967295 - i64.and - i64.add - local.set $w|44 - local.get $w|44 - i64.const 2147483647 - i64.add - local.set $w|44 - local.get $t|43 - i64.const 32 - i64.shr_u - local.set $t|43 - local.get $w|44 - i64.const 32 - i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.add - local.get $w|44 - i64.add - i64.const 1 - i64.sub - local.set $wp_frc - global.get $~lib/util/number/_exp - local.set $e1|46 - local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 - i32.add - i32.const 64 - i32.add - local.set $wp_exp - global.get $~lib/util/number/_frc_minus - local.set $u|49 - local.get $frc_pow - local.set $v|50 - local.get $u|49 - i64.const 4294967295 - i64.and - local.set $u0|51 - local.get $v|50 - i64.const 4294967295 - i64.and - local.set $v0|52 - local.get $u|49 - i64.const 32 - i64.shr_u - local.set $u1|53 - local.get $v|50 - i64.const 32 - i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 - i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 - i64.mul - local.get $l|55 - i64.const 32 - i64.shr_u - i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.const 4294967295 - i64.and - i64.add - local.set $w|57 - local.get $w|57 - i64.const 2147483647 - i64.add - local.set $w|57 - local.get $t|56 - i64.const 32 - i64.shr_u - local.set $t|56 - local.get $w|57 - i64.const 32 - i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.add - local.get $w|57 - i64.add - i64.const 1 - i64.add - local.set $wm_frc - local.get $wp_frc - local.get $wm_frc - i64.sub - local.set $delta - local.get $buffer|4 - local.get $w_frc - local.get $w_exp - local.get $wp_frc - local.get $wp_exp - local.get $delta - local.get $sign|5 - call $~lib/util/number/genDigits + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|3 + local.get $buffer + local.set $buffer|4 + local.get $sign + local.set $sign|5 + local.get $value|3 + i64.reinterpret_f64 + local.set $uv + local.get $uv + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv + i64.const 4503599627370495 + i64.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid + i64.add + local.set $frc + local.get $exp + i32.const 1 + local.get $exp + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|12 + local.get $e + i32.const 1 + i32.sub + local.set $exp|13 + local.get $frc|12 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|12 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|12 + local.get $exp|13 + local.get $off + i32.sub + local.set $exp|13 + i32.const 1 + local.get $f + i64.const 4503599627370496 + i64.eq + i32.add + local.set $m + local.get $frc|12 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 11496 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load $0 + global.set $~lib/util/number/_frc_pow + i32.const 12192 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|20 + local.get $frc + local.get $off|20 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|20 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|36 + local.get $frc_pow + local.set $v|37 + local.get $u|36 + i64.const 4294967295 + i64.and + local.set $u0|38 + local.get $v|37 + i64.const 4294967295 + i64.and + local.set $v0|39 + local.get $u|36 + i64.const 32 + i64.shr_u + local.set $u1|40 + local.get $v|37 + i64.const 32 + i64.shr_u + local.set $v1|41 + local.get $u0|38 + local.get $v0|39 + i64.mul + local.set $l|42 + local.get $u1|40 + local.get $v0|39 + i64.mul + local.get $l|42 + i64.const 32 + i64.shr_u + i64.add + local.set $t|43 + local.get $u0|38 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.const 4294967295 + i64.and + i64.add + local.set $w|44 + local.get $w|44 + i64.const 2147483647 + i64.add + local.set $w|44 + local.get $t|43 + i64.const 32 + i64.shr_u + local.set $t|43 + local.get $w|44 + i64.const 32 + i64.shr_u + local.set $w|44 + local.get $u1|40 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.add + local.get $w|44 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|46 + local.get $exp_pow + local.set $e2|47 + local.get $e1|46 + local.get $e2|47 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|49 + local.get $frc_pow + local.set $v|50 + local.get $u|49 + i64.const 4294967295 + i64.and + local.set $u0|51 + local.get $v|50 + i64.const 4294967295 + i64.and + local.set $v0|52 + local.get $u|49 + i64.const 32 + i64.shr_u + local.set $u1|53 + local.get $v|50 + i64.const 32 + i64.shr_u + local.set $v1|54 + local.get $u0|51 + local.get $v0|52 + i64.mul + local.set $l|55 + local.get $u1|53 + local.get $v0|52 + i64.mul + local.get $l|55 + i64.const 32 + i64.shr_u + i64.add + local.set $t|56 + local.get $u0|51 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.const 4294967295 + i64.and + i64.add + local.set $w|57 + local.get $w|57 + i64.const 2147483647 + i64.add + local.set $w|57 + local.get $t|56 + i64.const 32 + i64.shr_u + local.set $t|56 + local.get $w|57 + i64.const 32 + i64.shr_u + local.set $w|57 + local.get $u1|53 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.add + local.get $w|57 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|4 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|5 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 + end local.set $len local.get $buffer local.get $sign @@ -17081,6 +17012,7 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/util/number/dtoa_buffered (type $i32_f64_=>_i32) (param $buffer i32) (param $value f64) (result i32) (local $sign i32) @@ -17153,6 +17085,7 @@ local.get $buffer local.get $value call $~lib/util/number/dtoa_core + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -17203,7 +17136,8 @@ return ) (func $std/array/Ref#toString (type $i32_=>_i32) (param $this i32) (result i32) - i32.const 12544 + i32.const 12608 + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -17400,6 +17334,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -17490,6 +17425,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -17662,6 +17598,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -17750,7 +17687,6 @@ unreachable ) (func $~lib/util/number/utoa64_dec_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) (local $t i64) (local $r i32) (local $b i32) @@ -17765,8 +17701,6 @@ local.get $num i64.const 100000000 i64.ge_u - local.set $3 - local.get $3 if local.get $num i64.const 100000000 @@ -17805,14 +17739,14 @@ i32.const 100 i32.rem_u local.set $c2 - i32.const 6636 + i32.const 6700 local.get $c1 i32.const 2 i32.shl i32.add i64.load32_u $0 local.set $digits1 - i32.const 6636 + i32.const 6700 local.get $c2 i32.const 2 i32.shl @@ -17834,14 +17768,14 @@ i64.shl i64.or i64.store $0 - i32.const 6636 + i32.const 6700 local.get $b1 i32.const 2 i32.shl i32.add i64.load32_u $0 local.set $digits1 - i32.const 6636 + i32.const 6700 local.get $b2 i32.const 2 i32.shl @@ -17968,6 +17902,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -18120,6 +18055,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -18263,6 +18199,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/array/Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) (local $ptr i32) @@ -18474,10 +18411,9 @@ unreachable end local.get $nestedArray + return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -18488,8 +18424,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -18503,8 +18437,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -18572,10 +18504,10 @@ i32.const 128 local.get $0 call $~lib/rt/itcms/__visit - i32.const 7056 + i32.const 7120 local.get $0 call $~lib/rt/itcms/__visit - i32.const 8112 + i32.const 8176 local.get $0 call $~lib/rt/itcms/__visit ) @@ -18684,7 +18616,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -18702,8 +18633,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -18781,7 +18710,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -18799,8 +18727,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -18874,7 +18800,6 @@ (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -18892,8 +18817,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -19021,7 +18944,6 @@ (func $~lib/array/Array#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -19039,8 +18961,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -19168,7 +19088,6 @@ (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -19186,8 +19105,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -19243,7 +19160,6 @@ (func $~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -19261,8 +19177,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -19318,7 +19232,6 @@ (func $~lib/array/Array<~lib/string/String|null>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -19336,8 +19249,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -19511,7 +19422,6 @@ (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -19529,8 +19439,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -19568,7 +19476,6 @@ (func $~lib/array/Array<~lib/array/Array>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -19586,8 +19493,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -19625,7 +19530,6 @@ (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -19643,8 +19547,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -19682,7 +19584,6 @@ (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -19700,8 +19601,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -20038,8 +19937,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 47904 - i32.const 47952 + i32.const 47968 + i32.const 48016 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -20098,7 +19997,7 @@ i32.const 4 i32.le_u drop - i32.const 10032 + i32.const 10096 br $~lib/util/sort/COMPARATOR|inlined.1 end local.set $1 @@ -20114,12 +20013,9 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) - (local $10 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20136,12 +20032,12 @@ i32.eq if local.get $i - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 return end local.get $i @@ -20152,11 +20048,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 1 @@ -20166,11 +20062,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20190,22 +20086,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20216,8 +20112,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -20232,8 +20126,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -20286,22 +20178,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20312,8 +20204,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -20324,22 +20214,22 @@ end end local.get $j - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 + return ) (func $std/array/assertStableSortedForComplexObjects (type $none_=>_none) (local $sorted i32) (local $check i32) (local $i i32) (local $len i32) - (local $4 i32) (local $input i32) (local $target i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -20351,25 +20241,27 @@ memory.fill $0 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 offset=8 - local.get $7 + local.get $6 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#slice - local.set $7 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#slice@varargs + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 - i32.const 10128 - local.set $7 + local.get $6 + i32.const 10192 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 offset=4 - local.get $7 + local.get $6 call $~lib/array/Array#sort local.tee $sorted i32.store $0 offset=12 @@ -20378,11 +20270,11 @@ i32.const 0 local.set $i global.get $std/array/inputStabArr - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 call $~lib/array/Array#get:length local.set $len block $for-break0 @@ -20390,8 +20282,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if global.get $~lib/memory/__stack_pointer local.get $sorted @@ -20401,11 +20291,11 @@ i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 local.get $i call $~lib/array/Array#__get local.tee $target @@ -20454,12 +20344,9 @@ ) (func $~lib/util/sort/extendRunRight<~lib/array/Array> (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) - (local $10 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20476,12 +20363,12 @@ i32.eq if local.get $i - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 return end local.get $i @@ -20492,11 +20379,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 1 @@ -20506,11 +20393,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20530,22 +20417,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20556,8 +20443,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -20572,8 +20457,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -20626,22 +20509,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20652,8 +20535,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -20664,18 +20545,18 @@ end end local.get $j - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 + return ) (func $std/array/isSorted<~lib/array/Array> (type $i32_i32_=>_i32) (param $data i32) (param $comparator i32) (result i32) (local $i i32) (local $len i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20693,27 +20574,25 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $data local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/array/Array>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 - local.get $5 + local.get $4 local.get $data local.get $i call $~lib/array/Array<~lib/array/Array>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20723,12 +20602,12 @@ i32.gt_s if i32.const 0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end local.get $i @@ -20739,12 +20618,13 @@ end end i32.const 1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $std/array/assertSorted<~lib/array/Array> (type $i32_i32_=>_none) (param $arr i32) (param $comparator i32) (local $2 i32) @@ -20784,7 +20664,6 @@ (local $arr i32) (local $i i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20805,8 +20684,6 @@ local.get $i local.get $size i32.lt_s - local.set $3 - local.get $3 if local.get $arr local.get $i @@ -20817,11 +20694,11 @@ local.get $i i32.sub call $std/array/Proxy#constructor - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store $0 offset=4 - local.get $4 + local.get $3 call $~lib/array/Array>#__set local.get $i i32.const 1 @@ -20831,21 +20708,19 @@ end end local.get $arr - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 + return ) (func $~lib/util/sort/extendRunRight> (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) - (local $10 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20862,12 +20737,12 @@ i32.eq if local.get $i - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 return end local.get $i @@ -20878,11 +20753,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 1 @@ -20892,11 +20767,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20916,22 +20791,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -20942,8 +20817,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -20958,8 +20831,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -21012,22 +20883,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21038,8 +20909,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -21050,18 +20919,18 @@ end end local.get $j - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 + return ) (func $std/array/isSorted> (type $i32_i32_=>_i32) (param $data i32) (param $comparator i32) (result i32) (local $i i32) (local $len i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21079,27 +20948,25 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $data local.get $i i32.const 1 i32.sub call $~lib/array/Array>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 - local.get $5 + local.get $4 local.get $data local.get $i call $~lib/array/Array>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21109,12 +20976,12 @@ i32.gt_s if i32.const 0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end local.get $i @@ -21125,12 +20992,13 @@ end end i32.const 1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $std/array/assertSorted> (type $i32_i32_=>_none) (param $arr i32) (param $comparator i32) (local $2 i32) @@ -21168,12 +21036,9 @@ ) (func $~lib/util/sort/extendRunRight<~lib/string/String|null> (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) - (local $10 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21190,12 +21055,12 @@ i32.eq if local.get $i - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 return end local.get $i @@ -21206,11 +21071,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 1 @@ -21220,11 +21085,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21244,22 +21109,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21270,8 +21135,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -21286,8 +21149,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -21340,22 +21201,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21366,8 +21227,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -21378,18 +21237,18 @@ end end local.get $j - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 + return ) (func $std/array/isSorted<~lib/string/String|null> (type $i32_i32_=>_i32) (param $data i32) (param $comparator i32) (result i32) (local $i i32) (local $len i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21407,27 +21266,25 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $data local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/string/String|null>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 - local.get $5 + local.get $4 local.get $data local.get $i call $~lib/array/Array<~lib/string/String|null>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21437,12 +21294,12 @@ i32.gt_s if i32.const 0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end local.get $i @@ -21453,12 +21310,13 @@ end end i32.const 1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $std/array/assertSorted<~lib/string/String|null> (type $i32_i32_=>_none) (param $arr i32) (param $comparator i32) (local $2 i32) @@ -21497,7 +21355,6 @@ (func $std/array/isArraysEqual<~lib/string/String|null> (type $i32_i32_i32_=>_i32) (param $a i32) (param $b i32) (param $len i32) (result i32) (local $i i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21518,12 +21375,12 @@ i32.ne if i32.const 0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end local.get $a @@ -21531,12 +21388,12 @@ i32.eq if i32.const 1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end end @@ -21546,36 +21403,34 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if i32.const 0 drop local.get $a local.get $i call $~lib/array/Array<~lib/string/String|null>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 - local.get $5 + local.get $4 local.get $b local.get $i call $~lib/array/Array<~lib/string/String|null>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 offset=4 - local.get $5 + local.get $4 call $~lib/string/String.__ne if i32.const 0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end local.get $i @@ -21586,19 +21441,19 @@ end end i32.const 1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $std/array/createRandomString (type $i32_=>_i32) (param $len i32) (result i32) (local $result i32) (local $i i32) - (local $3 i32) (local $x f64) - (local $5 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21611,7 +21466,7 @@ i32.const 0 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer - i32.const 10480 + i32.const 10544 local.tee $result i32.store $0 i32.const 0 @@ -21620,37 +21475,38 @@ local.get $i local.get $len i32.lt_s - local.set $3 - local.get $3 if global.get $~lib/memory/__stack_pointer local.get $result global.get $std/array/charset - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 offset=4 - local.get $5 - call $~lib/math/NativeMath.random - global.get $std/array/charset - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store $0 offset=8 - local.get $5 - call $~lib/string/String#get:length - f64.convert_i32_s - f64.mul - local.set $x - local.get $x - f64.floor + local.get $4 + block $~lib/math/NativeMath.floor|inlined.0 (result f64) + call $~lib/math/NativeMath.random + global.get $std/array/charset + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store $0 offset=8 + local.get $4 + call $~lib/string/String#get:length + f64.convert_i32_s + f64.mul + local.set $x + local.get $x + f64.floor + br $~lib/math/NativeMath.floor|inlined.0 + end i32.trunc_sat_f64_s call $~lib/string/String#charAt - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 offset=4 - local.get $5 + local.get $4 call $~lib/string/String.__concat local.tee $result i32.store $0 @@ -21662,18 +21518,18 @@ end end local.get $result - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $std/array/createRandomStringArray (type $i32_=>_i32) (param $size i32) (result i32) (local $arr i32) (local $i i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21694,8 +21550,6 @@ local.get $i local.get $size i32.lt_s - local.set $3 - local.get $3 if local.get $arr local.get $i @@ -21704,11 +21558,11 @@ f64.mul i32.trunc_sat_f64_s call $std/array/createRandomString - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store $0 offset=4 - local.get $4 + local.get $3 call $~lib/array/Array<~lib/string/String>#__set local.get $i i32.const 1 @@ -21718,21 +21572,19 @@ end end local.get $arr - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 + return ) (func $~lib/util/sort/extendRunRight<~lib/string/String> (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) - (local $10 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21749,12 +21601,12 @@ i32.eq if local.get $i - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 return end local.get $i @@ -21765,11 +21617,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 1 @@ -21779,11 +21631,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21803,22 +21655,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21829,8 +21681,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -21845,8 +21695,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if global.get $~lib/memory/__stack_pointer local.get $ptr @@ -21899,22 +21747,22 @@ i32.shl i32.add i32.load $0 offset=4 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 - local.get $10 + local.get $7 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load $0 - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $7 i32.store $0 offset=4 - local.get $10 + local.get $7 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21925,8 +21773,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -21937,18 +21783,18 @@ end end local.get $j - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $7 + return ) (func $std/array/isSorted<~lib/string/String> (type $i32_i32_=>_i32) (param $data i32) (param $comparator i32) (result i32) (local $i i32) (local $len i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21966,27 +21812,25 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $data local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/string/String>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 - local.get $5 + local.get $4 local.get $data local.get $i call $~lib/array/Array<~lib/string/String>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $comparator @@ -21996,12 +21840,12 @@ i32.gt_s if i32.const 0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end local.get $i @@ -22012,12 +21856,13 @@ end end i32.const 1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $std/array/assertSorted<~lib/string/String> (type $i32_i32_=>_none) (param $arr i32) (param $comparator i32) (local $2 i32) @@ -22060,7 +21905,6 @@ (local $sepLen i32) (local $i i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22080,13 +21924,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $9 + i32.const 10544 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end local.get $lastIndex @@ -22104,18 +21948,18 @@ local.get $value call $std/array/Ref#toString else - i32.const 10480 + i32.const 10544 end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end global.get $~lib/memory/__stack_pointer - i32.const 10480 + i32.const 10544 local.tee $result i32.store $0 offset=4 local.get $separator @@ -22127,8 +21971,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -22147,11 +21989,11 @@ local.get $result local.get $value call $std/array/Ref#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 @@ -22189,22 +22031,23 @@ local.get $result local.get $value call $std/array/Ref#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 end local.get $result - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/util/string/joinReferenceArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -22213,7 +22056,6 @@ (local $sepLen i32) (local $i i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22233,13 +22075,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $9 + i32.const 10544 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end local.get $lastIndex @@ -22257,18 +22099,18 @@ local.get $value call $std/array/Ref#toString else - i32.const 10480 + i32.const 10544 end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end global.get $~lib/memory/__stack_pointer - i32.const 10480 + i32.const 10544 local.tee $result i32.store $0 offset=4 local.get $separator @@ -22280,8 +22122,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -22300,11 +22140,11 @@ local.get $result local.get $value call $std/array/Ref#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 @@ -22342,22 +22182,23 @@ local.get $result local.get $value call $std/array/Ref#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 end local.get $result - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22370,7 +22211,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22383,6 +22224,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22395,7 +22237,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22408,6 +22250,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22420,7 +22263,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22433,6 +22276,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22445,7 +22289,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22458,6 +22302,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22470,7 +22315,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22483,6 +22328,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22495,7 +22341,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22508,6 +22354,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array<~lib/string/String|null>#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22520,7 +22367,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22533,6 +22380,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -22541,7 +22389,6 @@ (local $sepLen i32) (local $i i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22561,13 +22408,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $9 + i32.const 10544 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end local.get $lastIndex @@ -22585,18 +22432,18 @@ local.get $value call $~lib/array/Array#toString else - i32.const 10480 + i32.const 10544 end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end global.get $~lib/memory/__stack_pointer - i32.const 10480 + i32.const 10544 local.tee $result i32.store $0 offset=4 local.get $separator @@ -22608,8 +22455,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -22628,11 +22473,11 @@ local.get $result local.get $value call $~lib/array/Array#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 @@ -22670,22 +22515,23 @@ local.get $result local.get $value call $~lib/array/Array#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 end local.get $result - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array<~lib/array/Array>#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22698,7 +22544,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22711,6 +22557,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22723,7 +22570,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22736,6 +22583,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -22744,7 +22592,6 @@ (local $sepLen i32) (local $i i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22764,13 +22611,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $9 + i32.const 10544 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end local.get $lastIndex @@ -22788,18 +22635,18 @@ local.get $value call $~lib/array/Array#toString else - i32.const 10480 + i32.const 10544 end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end global.get $~lib/memory/__stack_pointer - i32.const 10480 + i32.const 10544 local.tee $result i32.store $0 offset=4 local.get $separator @@ -22811,8 +22658,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -22831,11 +22676,11 @@ local.get $result local.get $value call $~lib/array/Array#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 @@ -22873,22 +22718,23 @@ local.get $result local.get $value call $~lib/array/Array#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 end local.get $result - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array<~lib/array/Array>#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22901,7 +22747,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22914,6 +22760,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -22926,7 +22773,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -22939,6 +22786,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -22947,7 +22795,6 @@ (local $sepLen i32) (local $i i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22967,13 +22814,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $9 + i32.const 10544 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end local.get $lastIndex @@ -22991,18 +22838,18 @@ local.get $value call $~lib/array/Array#toString else - i32.const 10480 + i32.const 10544 end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end global.get $~lib/memory/__stack_pointer - i32.const 10480 + i32.const 10544 local.tee $result i32.store $0 offset=4 local.get $separator @@ -23014,8 +22861,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -23034,11 +22879,11 @@ local.get $result local.get $value call $~lib/array/Array#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 @@ -23076,22 +22921,23 @@ local.get $result local.get $value call $~lib/array/Array#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 end local.get $result - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array<~lib/array/Array>#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -23104,7 +22950,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -23117,6 +22963,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -23125,7 +22972,6 @@ (local $sepLen i32) (local $i i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23145,13 +22991,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $9 + i32.const 10544 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end local.get $lastIndex @@ -23169,18 +23015,18 @@ local.get $value call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 10480 + i32.const 10544 end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 return end global.get $~lib/memory/__stack_pointer - i32.const 10480 + i32.const 10544 local.tee $result i32.store $0 offset=4 local.get $separator @@ -23192,8 +23038,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -23212,11 +23056,11 @@ local.get $result local.get $value call $~lib/array/Array<~lib/array/Array>#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 @@ -23254,22 +23098,23 @@ local.get $result local.get $value call $~lib/array/Array<~lib/array/Array>#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store $0 offset=8 - local.get $9 + local.get $8 call $~lib/string/String.__concat local.tee $result i32.store $0 offset=4 end local.get $result - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -23282,7 +23127,7 @@ i32.const 0 i32.store $0 local.get $this - i32.const 10768 + i32.const 10832 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -23295,6 +23140,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/array/Array<~lib/array/Array>#map<~lib/array/Array> (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $len i32) @@ -23303,9 +23149,8 @@ (local $i i32) (local $6 i32) (local $7 i32) - (local $8 i32) (local $result i32) - (local $10 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23345,8 +23190,6 @@ i32.lt_s select i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $this @@ -23356,11 +23199,11 @@ i32.shl i32.add i32.load $0 - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store $0 offset=4 - local.get $10 + local.get $9 local.get $i local.get $this i32.const 3 @@ -23391,12 +23234,13 @@ end end local.get $out - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $9 + return ) (func $start:std/array (type $none_=>_none) (local $0 i32) @@ -23878,15 +23722,6 @@ (local $476 i32) (local $477 i32) (local $478 i32) - (local $479 i32) - (local $480 i32) - (local $481 i32) - (local $482 i32) - (local $483 i32) - (local $484 i32) - (local $485 i32) - (local $486 i32) - (local $487 i32) global.get $~lib/memory/__stack_pointer i32.const 508 i32.sub @@ -23944,11 +23779,11 @@ i32.const 0 i32.const 0 call $std/array/Ref#constructor - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array.isArray i32.eqz i32.eqz @@ -23963,11 +23798,11 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#constructor - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> i32.eqz i32.eqz @@ -23992,11 +23827,11 @@ unreachable end i32.const 640 - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array.isArray<~lib/string/String> i32.eqz i32.eqz @@ -24009,11 +23844,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array.isArray<~lib/array/Array> i32.eqz if @@ -24044,11 +23879,11 @@ i32.const 7 i32.const 704 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24063,8 +23898,10 @@ local.get $2 i32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $2 i32.const 5 @@ -24072,11 +23909,11 @@ i32.const 7 i32.const 736 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24100,11 +23937,11 @@ i32.const 7 i32.const 768 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24119,8 +23956,10 @@ local.get $2 i32.const 2 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $2 i32.const 5 @@ -24128,11 +23967,11 @@ i32.const 7 i32.const 800 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24156,11 +23995,11 @@ i32.const 7 i32.const 832 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24175,8 +24014,10 @@ local.get $2 i32.const -1 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $2 i32.const 5 @@ -24184,11 +24025,11 @@ i32.const 7 i32.const 864 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24220,11 +24061,11 @@ i32.const 8 i32.const 944 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24239,8 +24080,10 @@ local.get $17 i32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $17 i32.const 5 @@ -24248,11 +24091,11 @@ i32.const 8 i32.const 992 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24276,11 +24119,11 @@ i32.const 8 i32.const 1040 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24295,8 +24138,10 @@ local.get $17 i32.const 2 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $17 i32.const 5 @@ -24304,11 +24149,11 @@ i32.const 8 i32.const 1088 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24332,11 +24177,11 @@ i32.const 8 i32.const 1136 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24351,8 +24196,10 @@ local.get $17 i32.const -1 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $17 i32.const 5 @@ -24360,11 +24207,11 @@ i32.const 8 i32.const 1184 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24396,11 +24243,11 @@ i32.const 9 i32.const 1280 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24415,8 +24262,10 @@ local.get $32 f32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $32 i32.const 5 @@ -24424,11 +24273,11 @@ i32.const 9 i32.const 1328 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24452,11 +24301,11 @@ i32.const 9 i32.const 1376 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24471,8 +24320,10 @@ local.get $32 f32.const 2 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $32 i32.const 5 @@ -24480,11 +24331,11 @@ i32.const 9 i32.const 1424 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24508,11 +24359,11 @@ i32.const 9 i32.const 1472 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24527,8 +24378,10 @@ local.get $32 f32.const -1 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $32 i32.const 5 @@ -24536,11 +24389,11 @@ i32.const 9 i32.const 1520 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24555,8 +24408,10 @@ local.get $32 f32.const -0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#fill@varargs drop local.get $32 i32.const 5 @@ -24564,11 +24419,11 @@ i32.const 9 i32.const 1568 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24581,11 +24436,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -24599,11 +24454,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -24617,20 +24472,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 42 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -24645,11 +24500,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -24663,11 +24518,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -24681,11 +24536,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop local.set $47 local.get $47 @@ -24701,11 +24556,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -24719,11 +24574,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -24737,20 +24592,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -24764,11 +24619,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -24782,11 +24637,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -24801,20 +24656,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 44 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -24828,11 +24683,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -24846,11 +24701,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -24865,11 +24720,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -24884,20 +24739,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 45 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -24911,11 +24766,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -24929,11 +24784,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -24948,11 +24803,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -24967,11 +24822,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -25102,21 +24957,21 @@ i32.store $0 offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 local.get $54 call $~lib/array/Array#concat local.tee $55 i32.store $0 offset=40 global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -25130,11 +24985,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -25166,19 +25021,19 @@ i32.const 4 i32.const 1712 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#concat drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -25243,21 +25098,21 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 local.get $54 call $~lib/array/Array#concat local.tee $55 i32.store $0 offset=40 global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -25406,11 +25261,11 @@ global.get $~lib/memory/__stack_pointer local.get $60 global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#concat local.tee $55 i32.store $0 offset=40 @@ -25451,23 +25306,25 @@ local.get $63 i32.const 0 i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.set $487 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#copyWithin@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 1824 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25490,23 +25347,25 @@ local.get $63 i32.const 1 i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.set $487 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#copyWithin@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 1920 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25529,23 +25388,25 @@ local.get $63 i32.const 1 i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.set $487 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#copyWithin@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2016 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25568,23 +25429,25 @@ local.get $63 i32.const 2 i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.set $487 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#copyWithin@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2112 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25609,21 +25472,21 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2208 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25648,21 +25511,21 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2304 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25687,21 +25550,21 @@ i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2400 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25724,23 +25587,25 @@ local.get $63 i32.const 0 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.set $487 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#copyWithin@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2496 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25765,21 +25630,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2592 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25804,21 +25669,21 @@ i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25843,21 +25708,21 @@ i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2784 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25880,23 +25745,25 @@ local.get $63 i32.const -4 i32.const -3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.set $487 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#copyWithin@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 2880 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25909,20 +25776,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 42 call $~lib/array/Array#unshift drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -25936,11 +25803,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -25954,11 +25821,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -25973,11 +25840,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -25992,11 +25859,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -26011,11 +25878,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -26030,20 +25897,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 41 call $~lib/array/Array#unshift drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 5 i32.eq @@ -26057,11 +25924,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -26075,11 +25942,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -26094,11 +25961,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -26113,11 +25980,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -26132,11 +25999,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -26151,11 +26018,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -26170,11 +26037,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#shift global.set $std/array/i global.get $std/array/i @@ -26190,11 +26057,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -26208,11 +26075,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -26226,11 +26093,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -26245,11 +26112,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -26264,11 +26131,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -26283,11 +26150,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -26302,11 +26169,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -26322,11 +26189,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -26340,11 +26207,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -26358,11 +26225,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -26377,11 +26244,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -26396,11 +26263,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -26425,8 +26292,10 @@ global.get $~lib/memory/__stack_pointer local.get $113 i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#slice@varargs local.tee $110 i32.store $0 offset=56 local.get $110 @@ -26435,11 +26304,11 @@ i32.const 4 i32.const 2976 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26464,11 +26333,11 @@ i32.const 4 i32.const 3008 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26493,11 +26362,11 @@ i32.const 4 i32.const 3040 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26512,8 +26381,10 @@ global.get $~lib/memory/__stack_pointer local.get $113 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#slice + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#slice@varargs local.tee $110 i32.store $0 offset=56 local.get $110 @@ -26532,8 +26403,10 @@ global.get $~lib/memory/__stack_pointer local.get $113 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#slice@varargs local.tee $110 i32.store $0 offset=56 local.get $110 @@ -26542,11 +26415,11 @@ i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26571,11 +26444,11 @@ i32.const 4 i32.const 3120 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26600,11 +26473,11 @@ i32.const 4 i32.const 3152 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26620,11 +26493,11 @@ i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -26639,13 +26512,15 @@ end local.get $113 i32.const 10 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#slice - local.set $487 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#slice@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -26659,19 +26534,19 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#reverse drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -26685,11 +26560,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -26703,11 +26578,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -26722,11 +26597,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -26741,11 +26616,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -26760,20 +26635,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 44 call $~lib/array/Array#push drop @@ -26783,11 +26658,11 @@ i32.const 7 i32.const 3184 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#reverse local.tee $128 i32.store $0 offset=60 @@ -26800,8 +26675,6 @@ local.get $129 local.get $130 i32.lt_s - local.set $131 - local.get $131 if local.get $128 local.get $129 @@ -26835,32 +26708,30 @@ i32.const 7 i32.const 3216 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#reverse - local.tee $134 + local.tee $133 i32.store $0 offset=64 i32.const 0 - local.set $135 - local.get $134 + local.set $134 + local.get $133 call $~lib/array/Array#get:length - local.set $136 + local.set $135 loop $for-loop|1 + local.get $134 local.get $135 - local.get $136 i32.lt_s - local.set $137 - local.get $137 if + local.get $133 local.get $134 - local.get $135 call $~lib/array/Array#__get - local.get $134 + local.get $133 call $~lib/array/Array#get:length - local.get $135 + local.get $134 i32.sub i32.const 1 i32.sub @@ -26874,10 +26745,10 @@ call $~lib/builtins/abort unreachable end - local.get $135 + local.get $134 i32.const 1 i32.add - local.set $135 + local.set $134 br $for-loop|1 end end @@ -26887,32 +26758,30 @@ i32.const 7 i32.const 3248 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#reverse - local.tee $140 + local.tee $138 i32.store $0 offset=68 i32.const 0 - local.set $141 - local.get $140 + local.set $139 + local.get $138 call $~lib/array/Array#get:length - local.set $142 + local.set $140 loop $for-loop|2 - local.get $141 - local.get $142 + local.get $139 + local.get $140 i32.lt_s - local.set $143 - local.get $143 if - local.get $140 - local.get $141 + local.get $138 + local.get $139 call $~lib/array/Array#__get - local.get $140 + local.get $138 call $~lib/array/Array#get:length - local.get $141 + local.get $139 i32.sub i32.const 1 i32.sub @@ -26926,10 +26795,10 @@ call $~lib/builtins/abort unreachable end - local.get $141 + local.get $139 i32.const 1 i32.add - local.set $141 + local.set $139 br $for-loop|2 end end @@ -26939,32 +26808,30 @@ i32.const 11 i32.const 3296 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#reverse - local.tee $146 + local.tee $143 i32.store $0 offset=72 i32.const 0 - local.set $147 - local.get $146 + local.set $144 + local.get $143 call $~lib/array/Array#get:length - local.set $148 + local.set $145 loop $for-loop|3 - local.get $147 - local.get $148 + local.get $144 + local.get $145 i32.lt_s - local.set $149 - local.get $149 if - local.get $146 - local.get $147 + local.get $143 + local.get $144 call $~lib/array/Array#__get - local.get $146 + local.get $143 call $~lib/array/Array#get:length - local.get $147 + local.get $144 i32.sub i32.const 1 i32.sub @@ -26978,10 +26845,10 @@ call $~lib/builtins/abort unreachable end - local.get $147 + local.get $144 i32.const 1 i32.add - local.set $147 + local.set $144 br $for-loop|3 end end @@ -26991,32 +26858,30 @@ i32.const 11 i32.const 3344 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#reverse - local.tee $152 + local.tee $148 i32.store $0 offset=76 i32.const 0 - local.set $153 - local.get $152 + local.set $149 + local.get $148 call $~lib/array/Array#get:length - local.set $154 + local.set $150 loop $for-loop|4 - local.get $153 - local.get $154 + local.get $149 + local.get $150 i32.lt_s - local.set $155 - local.get $155 if - local.get $152 - local.get $153 + local.get $148 + local.get $149 call $~lib/array/Array#__get - local.get $152 + local.get $148 call $~lib/array/Array#get:length - local.get $153 + local.get $149 i32.sub i32.const 1 i32.sub @@ -27030,10 +26895,10 @@ call $~lib/builtins/abort unreachable end - local.get $153 + local.get $149 i32.const 1 i32.add - local.set $153 + local.set $149 br $for-loop|4 end end @@ -27043,32 +26908,30 @@ i32.const 11 i32.const 3392 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#reverse - local.tee $158 + local.tee $153 i32.store $0 offset=80 i32.const 0 - local.set $159 - local.get $158 + local.set $154 + local.get $153 call $~lib/array/Array#get:length - local.set $160 + local.set $155 loop $for-loop|5 - local.get $159 - local.get $160 + local.get $154 + local.get $155 i32.lt_s - local.set $161 - local.get $161 if - local.get $158 - local.get $159 + local.get $153 + local.get $154 call $~lib/array/Array#__get - local.get $158 + local.get $153 call $~lib/array/Array#get:length - local.get $159 + local.get $154 i32.sub i32.const 1 i32.sub @@ -27082,19 +26945,19 @@ call $~lib/builtins/abort unreachable end - local.get $159 + local.get $154 i32.const 1 i32.add - local.set $159 + local.set $154 br $for-loop|5 end end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 44 i32.const 0 call $~lib/array/Array#indexOf @@ -27112,11 +26975,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 42 i32.const 0 call $~lib/array/Array#indexOf @@ -27134,11 +26997,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 45 i32.const 0 call $~lib/array/Array#indexOf @@ -27156,11 +27019,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const 100 call $~lib/array/Array#indexOf @@ -27178,11 +27041,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const -100 call $~lib/array/Array#indexOf @@ -27200,11 +27063,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const -2 call $~lib/array/Array#indexOf @@ -27222,11 +27085,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const -4 call $~lib/array/Array#indexOf @@ -27244,11 +27107,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const 0 call $~lib/array/Array#indexOf @@ -27266,11 +27129,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const 1 call $~lib/array/Array#indexOf @@ -27288,11 +27151,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const 2 call $~lib/array/Array#indexOf @@ -27314,11 +27177,11 @@ i32.const 9 i32.const 3440 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#indexOf @@ -27338,11 +27201,11 @@ i32.const 12 i32.const 3472 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#indexOf @@ -27363,9 +27226,9 @@ i32.const 4 i32.const 3504 call $~lib/rt/__newArray - local.tee $168 + local.tee $162 i32.store $0 offset=84 - local.get $168 + local.get $162 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -27382,7 +27245,7 @@ call $~lib/builtins/abort unreachable end - local.get $168 + local.get $162 i32.const 7 i32.const 1 global.set $~argumentsLength @@ -27399,7 +27262,7 @@ call $~lib/builtins/abort unreachable end - local.get $168 + local.get $162 i32.const 2 i32.const 3 call $~lib/array/Array#lastIndexOf @@ -27414,7 +27277,7 @@ call $~lib/builtins/abort unreachable end - local.get $168 + local.get $162 i32.const 2 i32.const 2 call $~lib/array/Array#lastIndexOf @@ -27429,7 +27292,7 @@ call $~lib/builtins/abort unreachable end - local.get $168 + local.get $162 i32.const 2 i32.const -2 call $~lib/array/Array#lastIndexOf @@ -27444,7 +27307,7 @@ call $~lib/builtins/abort unreachable end - local.get $168 + local.get $162 i32.const 2 i32.const -1 call $~lib/array/Array#lastIndexOf @@ -27460,16 +27323,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 44 i32.const 0 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 1 i32.eq i32.eqz @@ -27482,16 +27345,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 42 i32.const 0 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 1 i32.eq i32.eqz @@ -27504,16 +27367,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 45 i32.const 0 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 0 i32.eq i32.eqz @@ -27526,16 +27389,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const 100 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 0 i32.eq i32.eqz @@ -27548,16 +27411,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const -100 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 1 i32.eq i32.eqz @@ -27570,16 +27433,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const -2 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 1 i32.eq i32.eqz @@ -27592,16 +27455,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const -4 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 1 i32.eq i32.eqz @@ -27614,16 +27477,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const 0 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 1 i32.eq i32.eqz @@ -27636,16 +27499,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const 1 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 1 i32.eq i32.eqz @@ -27658,16 +27521,16 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 43 i32.const 2 call $~lib/array/Array#includes - local.set $169 - local.get $169 + local.set $163 + local.get $163 i32.const 1 i32.eq i32.eqz @@ -27684,11 +27547,11 @@ i32.const 9 i32.const 3552 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#includes @@ -27706,11 +27569,11 @@ i32.const 12 i32.const 3584 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#includes @@ -27724,21 +27587,21 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -27752,11 +27615,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/internalCapacity i32.const 8 i32.eq @@ -27770,11 +27633,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -27789,11 +27652,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -27813,27 +27676,29 @@ i32.const 4 i32.const 3616 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.set $487 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#splice@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 5 i32.const 2 i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -27845,17 +27710,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 0 i32.const 2 i32.const 4 i32.const 3712 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -27873,27 +27738,27 @@ i32.const 4 i32.const 3744 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 i32.const 2 i32.const 4 i32.const 3792 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -27905,17 +27770,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 5 i32.const 2 i32.const 4 i32.const 3824 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -27933,27 +27798,29 @@ i32.const 4 i32.const 3872 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.set $487 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#splice@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 i32.const 2 i32.const 4 i32.const 3920 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -27965,17 +27832,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 2 i32.const 2 i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -27993,27 +27860,27 @@ i32.const 4 i32.const 3984 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28025,17 +27892,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 3 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28053,27 +27920,27 @@ i32.const 4 i32.const 4096 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28085,17 +27952,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 4 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28113,27 +27980,29 @@ i32.const 4 i32.const 4224 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.set $487 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#splice@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 i32.const 2 i32.const 4 i32.const 4272 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28145,17 +28014,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 4 i32.const 2 i32.const 4 i32.const 4304 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28173,27 +28042,29 @@ i32.const 4 i32.const 4352 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.set $487 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#splice@varargs + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 i32.const 2 i32.const 4 i32.const 4400 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28205,17 +28076,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 3 i32.const 2 i32.const 4 i32.const 4432 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28233,27 +28104,27 @@ i32.const 4 i32.const 4464 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 i32.const 2 i32.const 4 i32.const 4512 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28265,17 +28136,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 4 i32.const 2 i32.const 4 i32.const 4544 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28293,27 +28164,27 @@ i32.const 4 i32.const 4592 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 i32.const 2 i32.const 4 i32.const 4640 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28325,17 +28196,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 4 i32.const 2 i32.const 4 i32.const 4672 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28353,27 +28224,27 @@ i32.const 4 i32.const 4720 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 i32.const 2 i32.const 4 i32.const 4768 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28385,17 +28256,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 5 i32.const 2 i32.const 4 i32.const 4800 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28413,27 +28284,27 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 i32.const 2 i32.const 4 i32.const 4896 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28445,17 +28316,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 5 i32.const 2 i32.const 4 i32.const 4928 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28473,27 +28344,27 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 i32.const 2 i32.const 4 i32.const 5024 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28505,17 +28376,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 5 i32.const 2 i32.const 4 i32.const 5056 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28533,27 +28404,27 @@ i32.const 4 i32.const 5104 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 i32.const 2 i32.const 4 i32.const 5152 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28565,17 +28436,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 5 i32.const 2 i32.const 4 i32.const 5184 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28593,27 +28464,27 @@ i32.const 4 i32.const 5232 call $~lib/rt/__newArray - local.tee $176 + local.tee $170 i32.store $0 offset=88 - local.get $176 + local.get $170 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 i32.const 2 i32.const 4 i32.const 5280 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28625,17 +28496,17 @@ call $~lib/builtins/abort unreachable end - local.get $176 + local.get $170 i32.const 5 i32.const 2 i32.const 4 i32.const 5312 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -28653,16 +28524,16 @@ i32.const 10 i32.const 5360 call $~lib/rt/__newArray - local.tee $261 + local.tee $255 i32.store $0 offset=92 global.get $~lib/memory/__stack_pointer - local.get $261 + local.get $255 i32.const 1 i32.const 2 call $~lib/array/Array#splice - local.tee $262 + local.tee $256 i32.store $0 offset=96 - local.get $262 + local.get $256 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -28675,7 +28546,7 @@ call $~lib/builtins/abort unreachable end - local.get $261 + local.get $255 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -28695,54 +28566,54 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $263 + local.tee $257 i32.store $0 offset=100 global.get $~lib/memory/__stack_pointer - local.get $263 + local.get $257 i32.load $0 offset=4 - local.tee $264 + local.tee $258 i32.store $0 offset=104 - local.get $263 + local.get $257 i32.const 0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $263 + local.get $257 i32.const 1 i32.const 0 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $263 + local.get $257 i32.const 2 i32.const 0 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $263 + local.get $257 i32.const 3 i32.const 0 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $263 + local.get $257 i32.const 4 i32.const 0 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $263 - local.tee $261 + local.get $257 + local.tee $255 i32.store $0 offset=92 global.get $~lib/memory/__stack_pointer - local.get $261 + local.get $255 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $262 + local.tee $256 i32.store $0 offset=96 - local.get $262 + local.get $256 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -28755,14 +28626,14 @@ call $~lib/builtins/abort unreachable end - local.get $262 + local.get $256 i32.const 0 call $~lib/array/Array#__get - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/Ref#get:v i32.const 3 i32.eq @@ -28775,14 +28646,14 @@ call $~lib/builtins/abort unreachable end - local.get $262 + local.get $256 i32.const 1 call $~lib/array/Array#__get - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/Ref#get:v i32.const 4 i32.eq @@ -28795,7 +28666,7 @@ call $~lib/builtins/abort unreachable end - local.get $261 + local.get $255 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -28808,14 +28679,14 @@ call $~lib/builtins/abort unreachable end - local.get $261 + local.get $255 i32.const 0 call $~lib/array/Array#__get - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/Ref#get:v i32.const 1 i32.eq @@ -28828,14 +28699,14 @@ call $~lib/builtins/abort unreachable end - local.get $261 + local.get $255 i32.const 1 call $~lib/array/Array#__get - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/Ref#get:v i32.const 2 i32.eq @@ -28848,14 +28719,14 @@ call $~lib/builtins/abort unreachable end - local.get $261 + local.get $255 i32.const 2 call $~lib/array/Array#__get - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/Ref#get:v i32.const 5 i32.eq @@ -28875,40 +28746,40 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $265 + local.tee $259 i32.store $0 offset=108 global.get $~lib/memory/__stack_pointer - local.get $265 + local.get $259 i32.load $0 offset=4 - local.tee $266 + local.tee $260 i32.store $0 offset=112 - local.get $265 + local.get $259 i32.const 0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $265 + local.get $259 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $265 + local.get $259 i32.const 2 i32.const 0 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $265 - local.tee $267 + local.get $259 + local.tee $261 i32.store $0 offset=116 global.get $~lib/memory/__stack_pointer - local.get $267 + local.get $261 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $268 + local.tee $262 i32.store $0 offset=120 - local.get $268 + local.get $262 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -28922,14 +28793,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $268 + local.get $262 i32.const 0 call $~lib/array/Array#__get - local.tee $269 + local.tee $263 i32.store $0 offset=124 - local.get $269 + local.get $263 if (result i32) - local.get $269 + local.get $263 else i32.const 5520 i32.const 528 @@ -28938,11 +28809,11 @@ call $~lib/builtins/abort unreachable end - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/Ref#get:v i32.const 1 i32.eq @@ -28955,7 +28826,7 @@ call $~lib/builtins/abort unreachable end - local.get $267 + local.get $261 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -28968,7 +28839,7 @@ call $~lib/builtins/abort unreachable end - local.get $267 + local.get $261 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -28983,14 +28854,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $267 + local.get $261 i32.const 1 call $~lib/array/Array#__get - local.tee $270 + local.tee $264 i32.store $0 offset=128 - local.get $270 + local.get $264 if (result i32) - local.get $270 + local.get $264 else i32.const 5520 i32.const 528 @@ -28999,11 +28870,11 @@ call $~lib/builtins/abort unreachable end - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $std/array/Ref#get:v i32.const 2 i32.eq @@ -29017,53 +28888,53 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 i32.const 3 call $~lib/array/Array#__set global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 5584 - local.set $487 + local.get $478 + i32.const 5648 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -29079,17 +28950,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 5616 - local.set $487 + local.get $478 + i32.const 5680 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -29105,17 +28976,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 5648 - local.set $487 + local.get $478 + i32.const 5712 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -29131,17 +29002,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 5680 - local.set $487 + local.get $478 + i32.const 5744 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -29157,11 +29028,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -29175,17 +29046,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 5712 - local.set $487 + local.get $478 + i32.const 5776 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -29201,49 +29072,49 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 5744 - local.set $487 + local.get $478 + i32.const 5808 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -29259,11 +29130,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -29277,20 +29148,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop @@ -29298,17 +29169,17 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 5776 + i32.const 5840 call $~lib/rt/__newArray - local.tee $273 + local.tee $267 i32.store $0 offset=132 - local.get $273 - i32.const 5824 - local.set $487 + local.get $267 + i32.const 5888 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -29323,13 +29194,13 @@ call $~lib/builtins/abort unreachable end - local.get $273 - i32.const 5856 - local.set $487 + local.get $267 + i32.const 5920 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -29344,13 +29215,13 @@ call $~lib/builtins/abort unreachable end - local.get $273 - i32.const 5888 - local.set $487 + local.get $267 + i32.const 5952 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -29365,13 +29236,13 @@ call $~lib/builtins/abort unreachable end - local.get $273 - i32.const 5920 - local.set $487 + local.get $267 + i32.const 5984 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -29387,20 +29258,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 5952 - local.set $487 + local.get $478 + i32.const 6016 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#every - local.set $274 - local.get $274 + local.set $268 + local.get $268 i32.const 1 i32.eq i32.eqz @@ -29413,20 +29284,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 5984 - local.set $487 + local.get $478 + i32.const 6048 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#every - local.set $274 - local.get $274 + local.set $268 + local.get $268 i32.const 0 i32.eq i32.eqz @@ -29439,20 +29310,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6016 - local.set $487 + local.get $478 + i32.const 6080 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#every - local.set $274 - local.get $274 + local.set $268 + local.get $268 i32.const 1 i32.eq i32.eqz @@ -29465,11 +29336,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -29483,20 +29354,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6048 - local.set $487 + local.get $478 + i32.const 6112 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#every - local.set $274 - local.get $274 + local.set $268 + local.get $268 i32.const 0 i32.eq i32.eqz @@ -29509,52 +29380,52 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6080 - local.set $487 + local.get $478 + i32.const 6144 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#every - local.set $274 - local.get $274 + local.set $268 + local.get $268 i32.const 1 i32.eq i32.eqz @@ -29567,11 +29438,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -29585,38 +29456,38 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6112 - local.set $487 + local.get $478 + i32.const 6176 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#some - local.set $275 - local.get $275 + local.set $269 + local.get $269 i32.const 1 i32.eq i32.eqz @@ -29629,20 +29500,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6144 - local.set $487 + local.get $478 + i32.const 6208 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#some - local.set $275 - local.get $275 + local.set $269 + local.get $269 i32.const 0 i32.eq i32.eqz @@ -29655,20 +29526,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6176 - local.set $487 + local.get $478 + i32.const 6240 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#some - local.set $275 - local.get $275 + local.set $269 + local.get $269 i32.const 0 i32.eq i32.eqz @@ -29681,11 +29552,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -29699,20 +29570,20 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6208 - local.set $487 + local.get $478 + i32.const 6272 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#some - local.set $275 - local.get $275 + local.set $269 + local.get $269 i32.const 1 i32.eq i32.eqz @@ -29725,52 +29596,52 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6240 - local.set $487 + local.get $478 + i32.const 6304 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#some - local.set $275 - local.get $275 + local.set $269 + local.get $269 i32.const 0 i32.eq i32.eqz @@ -29783,11 +29654,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -29801,37 +29672,37 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6272 - local.set $487 + local.get $478 + i32.const 6336 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 @@ -29848,17 +29719,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6304 - local.set $487 + local.get $478 + i32.const 6368 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 @@ -29873,11 +29744,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -29893,17 +29764,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6336 - local.set $487 + local.get $478 + i32.const 6400 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#forEach global.get $std/array/i i32.const 406 @@ -29918,51 +29789,51 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6368 - local.set $487 + local.get $478 + i32.const 6432 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#forEach global.get $std/array/i i32.const 1 @@ -29977,11 +29848,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -29995,42 +29866,42 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 6400 - local.set $487 + local.get $478 + i32.const 6464 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#forEach global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 100 i32.eq @@ -30044,98 +29915,96 @@ unreachable end i32.const 0 - local.set $276 + local.set $270 loop $for-loop|6 - local.get $276 + local.get $270 i32.const 100 i32.lt_s - local.set $277 - local.get $277 if global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop - local.get $276 + local.get $270 i32.const 1 i32.add - local.set $276 + local.set $270 br $for-loop|6 end end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8208 - local.set $487 + local.get $478 + i32.const 8272 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#map<~lib/string/String> - local.tee $278 + local.tee $271 i32.store $0 offset=136 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8240 - local.set $487 + local.get $478 + i32.const 8304 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#map - local.tee $279 + local.tee $272 i32.store $0 offset=140 - local.get $279 + local.get $272 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -30148,15 +30017,15 @@ call $~lib/builtins/abort unreachable end - local.get $279 + local.get $272 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s @@ -30173,17 +30042,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8272 - local.set $487 + local.get $478 + i32.const 8336 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#map drop global.get $std/array/i @@ -30199,11 +30068,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -30219,17 +30088,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8304 - local.set $487 + local.get $478 + i32.const 8368 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#map drop global.get $std/array/i @@ -30245,51 +30114,51 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8336 - local.set $487 + local.get $478 + i32.const 8400 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#map drop global.get $std/array/i @@ -30305,11 +30174,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -30323,40 +30192,40 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8368 - local.set $487 + local.get $478 + i32.const 8432 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#filter - local.tee $280 + local.tee $273 i32.store $0 offset=144 - local.get $280 + local.get $273 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -30372,17 +30241,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8400 - local.set $487 + local.get $478 + i32.const 8464 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#filter drop global.get $std/array/i @@ -30398,11 +30267,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -30418,17 +30287,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8432 - local.set $487 + local.get $478 + i32.const 8496 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#filter drop global.get $std/array/i @@ -30444,51 +30313,51 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8464 - local.set $487 + local.get $478 + i32.const 8528 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/array/Array#filter drop global.get $std/array/i @@ -30504,11 +30373,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -30522,35 +30391,35 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8496 - local.set $487 + local.get $478 + i32.const 8560 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -30567,17 +30436,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8528 - local.set $487 + local.get $478 + i32.const 8592 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 4 call $~lib/array/Array#reduce global.set $std/array/i @@ -30594,21 +30463,21 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8560 - local.set $487 + local.get $478 + i32.const 8624 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduce - local.set $281 - local.get $281 + local.set $274 + local.get $274 i32.const 0 i32.ne i32.const 1 @@ -30623,21 +30492,21 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8592 - local.set $487 + local.get $478 + i32.const 8656 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduce - local.set $281 - local.get $281 + local.set $274 + local.get $274 i32.const 0 i32.ne i32.const 0 @@ -30652,17 +30521,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8624 - local.set $487 + local.get $478 + i32.const 8688 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -30679,11 +30548,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -30697,17 +30566,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8656 - local.set $487 + local.get $478 + i32.const 8720 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -30724,49 +30593,49 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8688 - local.set $487 + local.get $478 + i32.const 8752 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -30783,11 +30652,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -30801,35 +30670,35 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8720 - local.set $487 + local.get $478 + i32.const 8784 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -30846,17 +30715,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8752 - local.set $487 + local.get $478 + i32.const 8816 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 4 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -30873,21 +30742,21 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8784 - local.set $487 + local.get $478 + i32.const 8848 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduceRight - local.set $282 - local.get $282 + local.set $275 + local.get $275 i32.const 0 i32.ne i32.const 1 @@ -30902,21 +30771,21 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8816 - local.set $487 + local.get $478 + i32.const 8880 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduceRight - local.set $282 - local.get $282 + local.set $275 + local.get $275 i32.const 0 i32.ne i32.const 0 @@ -30931,17 +30800,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8848 - local.set $487 + local.get $478 + i32.const 8912 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -30958,11 +30827,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -30976,17 +30845,17 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8880 - local.set $487 + local.get $478 + i32.const 8944 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -31003,49 +30872,49 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 8912 - local.set $487 + local.get $478 + i32.const 8976 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -31062,11 +30931,11 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -31080,38 +30949,38 @@ unreachable end global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 0 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 1 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 i32.const 3 call $~lib/array/Array#push drop @@ -31124,194 +30993,194 @@ i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $283 + local.tee $276 i32.store $0 offset=148 global.get $~lib/memory/__stack_pointer - local.get $283 + local.get $276 i32.load $0 offset=4 - local.tee $284 + local.tee $277 i32.store $0 offset=152 - local.get $283 + local.get $276 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $285 + local.tee $278 i32.store $0 offset=156 - local.get $285 + local.get $278 i32.const 100 call $std/array/Dim#set:height - local.get $285 + local.get $278 i32.const 80 call $std/array/Dim#set:width - local.get $285 + local.get $278 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $286 + local.tee $279 i32.store $0 offset=160 - local.get $286 + local.get $279 i32.const 90 call $std/array/Dim#set:height - local.get $286 + local.get $279 i32.const 90 call $std/array/Dim#set:width - local.get $286 + local.get $279 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 2 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $287 + local.tee $280 i32.store $0 offset=164 - local.get $287 + local.get $280 i32.const 70 call $std/array/Dim#set:height - local.get $287 + local.get $280 i32.const 95 call $std/array/Dim#set:width - local.get $287 + local.get $280 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 3 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $288 + local.tee $281 i32.store $0 offset=168 - local.get $288 + local.get $281 i32.const 100 call $std/array/Dim#set:height - local.get $288 + local.get $281 i32.const 100 call $std/array/Dim#set:width - local.get $288 + local.get $281 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 4 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $289 + local.tee $282 i32.store $0 offset=172 - local.get $289 + local.get $282 i32.const 80 call $std/array/Dim#set:height - local.get $289 + local.get $282 i32.const 110 call $std/array/Dim#set:width - local.get $289 + local.get $282 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 5 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $290 + local.tee $283 i32.store $0 offset=176 - local.get $290 + local.get $283 i32.const 110 call $std/array/Dim#set:height - local.get $290 + local.get $283 i32.const 115 call $std/array/Dim#set:width - local.get $290 - call $~lib/array/Array#__uset local.get $283 + call $~lib/array/Array#__uset + local.get $276 i32.const 6 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $291 + local.tee $284 i32.store $0 offset=180 - local.get $291 + local.get $284 i32.const 100 call $std/array/Dim#set:height - local.get $291 + local.get $284 i32.const 120 call $std/array/Dim#set:width - local.get $291 + local.get $284 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 7 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $292 + local.tee $285 i32.store $0 offset=184 - local.get $292 + local.get $285 i32.const 70 call $std/array/Dim#set:height - local.get $292 + local.get $285 i32.const 125 call $std/array/Dim#set:width - local.get $292 + local.get $285 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 8 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $293 + local.tee $286 i32.store $0 offset=188 - local.get $293 + local.get $286 i32.const 70 call $std/array/Dim#set:height - local.get $293 + local.get $286 i32.const 130 call $std/array/Dim#set:width - local.get $293 + local.get $286 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 9 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $294 + local.tee $287 i32.store $0 offset=192 - local.get $294 + local.get $287 i32.const 100 call $std/array/Dim#set:height - local.get $294 + local.get $287 i32.const 135 call $std/array/Dim#set:width - local.get $294 + local.get $287 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 10 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $295 + local.tee $288 i32.store $0 offset=196 - local.get $295 + local.get $288 i32.const 75 call $std/array/Dim#set:height - local.get $295 + local.get $288 i32.const 140 call $std/array/Dim#set:width - local.get $295 + local.get $288 call $~lib/array/Array#__uset - local.get $283 + local.get $276 i32.const 11 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $296 + local.tee $289 i32.store $0 offset=200 - local.get $296 + local.get $289 i32.const 70 call $std/array/Dim#set:height - local.get $296 + local.get $289 i32.const 140 call $std/array/Dim#set:width - local.get $296 + local.get $289 call $~lib/array/Array#__uset - local.get $283 + local.get $276 global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer i32.const 12 @@ -31319,220 +31188,220 @@ i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $297 + local.tee $290 i32.store $0 offset=204 global.get $~lib/memory/__stack_pointer - local.get $297 + local.get $290 i32.load $0 offset=4 - local.tee $298 + local.tee $291 i32.store $0 offset=208 - local.get $297 + local.get $290 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $299 + local.tee $292 i32.store $0 offset=212 - local.get $299 + local.get $292 i32.const 70 call $std/array/Dim#set:height - local.get $299 + local.get $292 i32.const 95 call $std/array/Dim#set:width - local.get $299 + local.get $292 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $300 + local.tee $293 i32.store $0 offset=216 - local.get $300 + local.get $293 i32.const 70 call $std/array/Dim#set:height - local.get $300 + local.get $293 i32.const 125 call $std/array/Dim#set:width - local.get $300 + local.get $293 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 2 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $301 + local.tee $294 i32.store $0 offset=220 - local.get $301 + local.get $294 i32.const 70 call $std/array/Dim#set:height - local.get $301 + local.get $294 i32.const 130 call $std/array/Dim#set:width - local.get $301 + local.get $294 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 3 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $302 + local.tee $295 i32.store $0 offset=224 - local.get $302 + local.get $295 i32.const 70 call $std/array/Dim#set:height - local.get $302 + local.get $295 i32.const 140 call $std/array/Dim#set:width - local.get $302 + local.get $295 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 4 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $303 + local.tee $296 i32.store $0 offset=228 - local.get $303 + local.get $296 i32.const 75 call $std/array/Dim#set:height - local.get $303 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $303 + local.get $296 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 5 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $304 + local.tee $297 i32.store $0 offset=232 - local.get $304 + local.get $297 i32.const 80 call $std/array/Dim#set:height - local.get $304 + local.get $297 i32.const 110 call $std/array/Dim#set:width - local.get $304 - call $~lib/array/Array#__uset local.get $297 + call $~lib/array/Array#__uset + local.get $290 i32.const 6 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $305 + local.tee $298 i32.store $0 offset=236 - local.get $305 + local.get $298 i32.const 90 call $std/array/Dim#set:height - local.get $305 + local.get $298 i32.const 90 call $std/array/Dim#set:width - local.get $305 + local.get $298 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 7 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $306 + local.tee $299 i32.store $0 offset=240 - local.get $306 + local.get $299 i32.const 100 call $std/array/Dim#set:height - local.get $306 + local.get $299 i32.const 80 call $std/array/Dim#set:width - local.get $306 + local.get $299 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 8 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $307 + local.tee $300 i32.store $0 offset=244 - local.get $307 + local.get $300 i32.const 100 call $std/array/Dim#set:height - local.get $307 + local.get $300 i32.const 100 call $std/array/Dim#set:width - local.get $307 + local.get $300 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 9 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $308 + local.tee $301 i32.store $0 offset=248 - local.get $308 + local.get $301 i32.const 100 call $std/array/Dim#set:height - local.get $308 + local.get $301 i32.const 120 call $std/array/Dim#set:width - local.get $308 + local.get $301 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 10 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $309 + local.tee $302 i32.store $0 offset=252 - local.get $309 + local.get $302 i32.const 100 call $std/array/Dim#set:height - local.get $309 + local.get $302 i32.const 135 call $std/array/Dim#set:width - local.get $309 + local.get $302 call $~lib/array/Array#__uset - local.get $297 + local.get $290 i32.const 11 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $310 + local.tee $303 i32.store $0 offset=256 - local.get $310 + local.get $303 i32.const 110 call $std/array/Dim#set:height - local.get $310 + local.get $303 i32.const 115 call $std/array/Dim#set:width - local.get $310 + local.get $303 call $~lib/array/Array#__uset - local.get $297 + local.get $290 global.set $std/array/outputStabArr global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 i32.const 9 - i32.const 9136 + i32.const 9200 call $~lib/rt/__newArray - local.tee $313 + local.tee $306 i32.store $0 offset=260 - local.get $313 + local.get $306 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $313 + local.get $306 i32.const 3 i32.const 2 i32.const 9 - i32.const 9200 + i32.const 9264 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31548,27 +31417,27 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 9232 + i32.const 9296 call $~lib/rt/__newArray - local.tee $318 + local.tee $311 i32.store $0 offset=264 - local.get $318 + local.get $311 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $318 + local.get $311 i32.const 8 i32.const 2 i32.const 9 - i32.const 9296 + i32.const 9360 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31584,27 +31453,27 @@ i32.const 8 i32.const 3 i32.const 12 - i32.const 9360 + i32.const 9424 call $~lib/rt/__newArray - local.tee $323 + local.tee $316 i32.store $0 offset=268 - local.get $323 + local.get $316 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $323 + local.get $316 i32.const 8 i32.const 3 i32.const 12 - i32.const 9488 + i32.const 9552 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31620,27 +31489,27 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 9584 + i32.const 9648 call $~lib/rt/__newArray - local.tee $328 + local.tee $321 i32.store $0 offset=272 - local.get $328 + local.get $321 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $328 + local.get $321 i32.const 5 i32.const 2 i32.const 4 - i32.const 9664 + i32.const 9728 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31656,27 +31525,27 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 9712 + i32.const 9776 call $~lib/rt/__newArray - local.tee $333 + local.tee $326 i32.store $0 offset=276 - local.get $333 + local.get $326 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $333 + local.get $326 i32.const 5 i32.const 2 i32.const 8 - i32.const 9792 + i32.const 9856 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31692,82 +31561,82 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 9840 + i32.const 9904 call $~lib/rt/__newArray - local.tee $338 + local.tee $331 i32.store $0 offset=280 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 - i32.const 9872 + i32.const 9936 call $~lib/rt/__newArray - local.tee $341 + local.tee $334 i32.store $0 offset=284 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 - i32.const 9904 + i32.const 9968 call $~lib/rt/__newArray - local.tee $344 + local.tee $337 i32.store $0 offset=288 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 - i32.const 9936 + i32.const 10000 call $~lib/rt/__newArray - local.tee $347 + local.tee $340 i32.store $0 offset=292 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 - i32.const 9984 + i32.const 10048 call $~lib/rt/__newArray - local.tee $350 + local.tee $343 i32.store $0 offset=296 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $351 + local.tee $344 i32.store $0 offset=300 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $352 + local.tee $345 i32.store $0 offset=304 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $353 + local.tee $346 i32.store $0 offset=308 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $354 + local.tee $347 i32.store $0 offset=312 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $355 + local.tee $348 i32.store $0 offset=316 - local.get $338 + local.get $331 call $std/array/assertSortedDefault - local.get $341 + local.get $334 call $std/array/assertSortedDefault - local.get $341 + local.get $334 i32.const 1 i32.const 2 i32.const 4 - i32.const 10064 + i32.const 10128 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31779,19 +31648,19 @@ call $~lib/builtins/abort unreachable end - local.get $344 + local.get $337 call $std/array/assertSortedDefault - local.get $344 + local.get $337 i32.const 2 i32.const 2 i32.const 4 - i32.const 10096 + i32.const 10160 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31803,10 +31672,10 @@ call $~lib/builtins/abort unreachable end - local.get $347 + local.get $340 call $std/array/assertSortedDefault - local.get $347 - local.get $350 + local.get $340 + local.get $343 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -31818,10 +31687,10 @@ call $~lib/builtins/abort unreachable end - local.get $351 + local.get $344 call $std/array/assertSortedDefault - local.get $351 - local.get $350 + local.get $344 + local.get $343 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -31833,10 +31702,10 @@ call $~lib/builtins/abort unreachable end - local.get $352 + local.get $345 call $std/array/assertSortedDefault - local.get $352 - local.get $350 + local.get $345 + local.get $343 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -31848,10 +31717,10 @@ call $~lib/builtins/abort unreachable end - local.get $353 + local.get $346 call $std/array/assertSortedDefault - local.get $353 - local.get $350 + local.get $346 + local.get $343 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -31863,10 +31732,10 @@ call $~lib/builtins/abort unreachable end - local.get $354 + local.get $347 call $std/array/assertSortedDefault - local.get $354 - local.get $350 + local.get $347 + local.get $343 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -31878,100 +31747,100 @@ call $~lib/builtins/abort unreachable end - local.get $355 + local.get $348 call $std/array/assertSortedDefault call $std/array/assertStableSortedForComplexObjects global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray - local.tee $360 + local.tee $353 i32.store $0 offset=320 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $361 + local.tee $354 i32.store $0 offset=324 - local.get $360 - i32.const 10160 - local.set $487 + local.get $353 + i32.const 10224 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $std/array/assertSorted - local.get $360 - i32.const 10192 - local.set $487 + local.get $353 + i32.const 10256 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $std/array/assertSorted - local.get $361 - i32.const 10224 - local.set $487 + local.get $354 + i32.const 10288 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $std/array/assertSorted - local.get $361 - i32.const 10256 - local.set $487 + local.get $354 + i32.const 10320 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 2 call $std/array/createReverseOrderedNestedArray - local.tee $362 + local.tee $355 i32.store $0 offset=328 - local.get $362 - i32.const 10288 - local.set $487 + local.get $355 + i32.const 10352 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createReverseOrderedElementsArray - local.tee $363 + local.tee $356 i32.store $0 offset=332 - local.get $363 - i32.const 10320 - local.set $487 + local.get $356 + i32.const 10384 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $std/array/assertSorted> global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 i32.const 34 - i32.const 10512 + i32.const 10576 call $~lib/rt/__newArray - local.tee $366 + local.tee $359 i32.store $0 offset=336 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 i32.const 34 - i32.const 10560 + i32.const 10624 call $~lib/rt/__newArray - local.tee $369 + local.tee $362 i32.store $0 offset=340 - local.get $366 + local.get $359 i32.const 1 global.set $~argumentsLength i32.const 0 call $std/array/assertSorted<~lib/string/String|null>@varargs - local.get $366 - local.get $369 + local.get $359 + local.get $362 i32.const 0 call $std/array/isArraysEqual<~lib/string/String|null> i32.eqz @@ -31986,9 +31855,9 @@ global.get $~lib/memory/__stack_pointer i32.const 400 call $std/array/createRandomStringArray - local.tee $370 + local.tee $363 i32.store $0 offset=344 - local.get $370 + local.get $363 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -31996,31 +31865,31 @@ i32.const 2 i32.const 0 i32.const 37 - i32.const 10672 + i32.const 10736 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 - i32.const 10768 - local.set $487 + local.get $478 + i32.const 10832 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=352 - local.get $487 + local.get $478 call $~lib/array/Array#join - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 10800 - local.set $487 + local.get $478 + i32.const 10864 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32034,31 +31903,31 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 10848 + i32.const 10912 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 - i32.const 10480 - local.set $487 + local.get $478 + i32.const 10544 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=352 - local.get $487 + local.get $478 call $~lib/array/Array#join - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 10880 - local.set $487 + local.get $478 + i32.const 10944 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32072,31 +31941,31 @@ i32.const 3 i32.const 2 i32.const 8 - i32.const 10912 + i32.const 10976 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 - i32.const 10944 - local.set $487 + local.get $478 + i32.const 11008 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=352 - local.get $487 + local.get $478 call $~lib/array/Array#join - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 10880 - local.set $487 + local.get $478 + i32.const 10944 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32110,31 +31979,31 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 10976 + i32.const 11040 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 - i32.const 11008 - local.set $487 + local.get $478 + i32.const 11072 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=352 - local.get $487 + local.get $478 call $~lib/array/Array#join - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 11040 - local.set $487 + local.get $478 + i32.const 11104 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32148,31 +32017,31 @@ i32.const 6 i32.const 3 i32.const 12 - i32.const 11120 + i32.const 11184 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 - i32.const 11200 - local.set $487 + local.get $478 + i32.const 11264 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=352 - local.get $487 + local.get $478 call $~lib/array/Array#join - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 12368 - local.set $487 + local.get $478 + i32.const 12432 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32186,31 +32055,31 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 12512 + i32.const 12576 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 - i32.const 10480 - local.set $487 + local.get $478 + i32.const 10544 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=352 - local.get $487 + local.get $478 call $~lib/array/Array<~lib/string/String|null>#join - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 12480 - local.set $487 + local.get $478 + i32.const 12544 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32228,51 +32097,51 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $383 + local.tee $376 i32.store $0 offset=356 global.get $~lib/memory/__stack_pointer - local.get $383 + local.get $376 i32.load $0 offset=4 - local.tee $384 + local.tee $377 i32.store $0 offset=360 - local.get $383 + local.get $376 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $383 + local.get $376 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $383 + local.get $376 i32.const 2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $383 - local.tee $385 + local.get $376 + local.tee $378 i32.store $0 offset=364 - local.get $385 - i32.const 10768 - local.set $487 + local.get $378 + i32.const 10832 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=352 - local.get $487 + local.get $478 call $~lib/array/Array#join - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 12608 - local.set $487 + local.get $478 + i32.const 12672 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32290,47 +32159,47 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $386 + local.tee $379 i32.store $0 offset=368 global.get $~lib/memory/__stack_pointer - local.get $386 + local.get $379 i32.load $0 offset=4 - local.tee $387 + local.tee $380 i32.store $0 offset=372 - local.get $386 + local.get $379 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $386 + local.get $379 i32.const 1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $386 - local.tee $388 + local.get $379 + local.tee $381 i32.store $0 offset=376 - local.get $388 - i32.const 10768 - local.set $487 + local.get $381 + i32.const 10832 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=352 - local.get $487 + local.get $478 call $~lib/array/Array#join - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 12704 - local.set $487 + local.get $478 + i32.const 12768 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32345,47 +32214,47 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 12800 + i32.const 12864 call $~lib/rt/__newArray - local.tee $391 + local.tee $384 i32.store $0 offset=380 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 - i32.const 12832 + i32.const 12896 call $~lib/rt/__newArray - local.tee $394 + local.tee $387 i32.store $0 offset=384 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 - i32.const 12864 + i32.const 12928 call $~lib/rt/__newArray - local.tee $397 + local.tee $390 i32.store $0 offset=388 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 - i32.const 12896 + i32.const 12960 call $~lib/rt/__newArray - local.tee $400 + local.tee $393 i32.store $0 offset=392 - local.get $391 + local.get $384 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 10480 - local.set $487 + local.get $478 + i32.const 10544 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32396,19 +32265,19 @@ call $~lib/builtins/abort unreachable end - local.get $394 + local.get $387 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 12480 - local.set $487 + local.get $478 + i32.const 12544 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32419,19 +32288,19 @@ call $~lib/builtins/abort unreachable end - local.get $397 + local.get $390 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 12944 - local.set $487 + local.get $478 + i32.const 13008 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32442,19 +32311,19 @@ call $~lib/builtins/abort unreachable end - local.get $400 + local.get $393 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 12976 - local.set $487 + local.get $478 + i32.const 13040 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32468,25 +32337,25 @@ i32.const 3 i32.const 0 i32.const 38 - i32.const 13024 + i32.const 13088 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13056 - local.set $487 + local.get $478 + i32.const 13120 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32500,25 +32369,25 @@ i32.const 3 i32.const 0 i32.const 38 - i32.const 13088 + i32.const 13152 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13120 - local.set $487 + local.get $478 + i32.const 13184 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32532,25 +32401,25 @@ i32.const 3 i32.const 1 i32.const 11 - i32.const 13168 + i32.const 13232 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13200 - local.set $487 + local.get $478 + i32.const 13264 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32564,25 +32433,25 @@ i32.const 2 i32.const 1 i32.const 39 - i32.const 13248 + i32.const 13312 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13280 - local.set $487 + local.get $478 + i32.const 13344 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32596,25 +32465,25 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 13328 + i32.const 13392 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13360 - local.set $487 + local.get $478 + i32.const 13424 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32628,25 +32497,25 @@ i32.const 3 i32.const 3 i32.const 40 - i32.const 13424 + i32.const 13488 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13472 - local.set $487 + local.get $478 + i32.const 13536 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32660,25 +32529,25 @@ i32.const 5 i32.const 3 i32.const 41 - i32.const 13552 + i32.const 13616 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13616 - local.set $487 + local.get $478 + i32.const 13680 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32693,23 +32562,23 @@ i32.const 7 i32.const 2 i32.const 34 - i32.const 13776 + i32.const 13840 call $~lib/rt/__newArray - local.tee $417 + local.tee $410 i32.store $0 offset=396 - local.get $417 + local.get $410 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13824 - local.set $487 + local.get $478 + i32.const 13888 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32723,25 +32592,25 @@ i32.const 4 i32.const 2 i32.const 34 - i32.const 13936 + i32.const 14000 call $~lib/rt/__newArray - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 13984 - local.set $487 + local.get $478 + i32.const 14048 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32759,45 +32628,45 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $420 + local.tee $413 i32.store $0 offset=400 global.get $~lib/memory/__stack_pointer - local.get $420 + local.get $413 i32.load $0 offset=4 - local.tee $421 + local.tee $414 i32.store $0 offset=404 - local.get $420 + local.get $413 i32.const 0 i32.const 2 i32.const 2 i32.const 4 - i32.const 14016 + i32.const 14080 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $420 + local.get $413 i32.const 1 i32.const 2 i32.const 2 i32.const 4 - i32.const 14048 + i32.const 14112 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $420 - local.tee $426 + local.get $413 + local.tee $419 i32.store $0 offset=408 - local.get $426 + local.get $419 call $~lib/array/Array<~lib/array/Array>#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 14080 - local.set $487 + local.get $478 + i32.const 14144 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32815,45 +32684,45 @@ i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $427 + local.tee $420 i32.store $0 offset=412 global.get $~lib/memory/__stack_pointer - local.get $427 + local.get $420 i32.load $0 offset=4 - local.tee $428 + local.tee $421 i32.store $0 offset=416 - local.get $427 + local.get $420 i32.const 0 i32.const 2 i32.const 0 i32.const 7 - i32.const 14128 + i32.const 14192 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $427 + local.get $420 i32.const 1 i32.const 2 i32.const 0 i32.const 7 - i32.const 14160 + i32.const 14224 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $427 - local.tee $433 + local.get $420 + local.tee $426 i32.store $0 offset=420 - local.get $433 + local.get $426 call $~lib/array/Array<~lib/array/Array>#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 14080 - local.set $487 + local.get $478 + i32.const 14144 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32871,14 +32740,14 @@ i32.const 44 i32.const 0 call $~lib/rt/__newArray - local.tee $434 + local.tee $427 i32.store $0 offset=424 global.get $~lib/memory/__stack_pointer - local.get $434 + local.get $427 i32.load $0 offset=4 - local.tee $435 + local.tee $428 i32.store $0 offset=428 - local.get $434 + local.get $427 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -32886,39 +32755,39 @@ i32.const 43 i32.const 0 call $~lib/rt/__newArray - local.tee $436 + local.tee $429 i32.store $0 offset=432 global.get $~lib/memory/__stack_pointer - local.get $436 + local.get $429 i32.load $0 offset=4 - local.tee $437 + local.tee $430 i32.store $0 offset=436 - local.get $436 + local.get $429 i32.const 0 i32.const 1 i32.const 2 i32.const 8 - i32.const 14192 + i32.const 14256 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $436 + local.get $429 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset - local.get $434 - local.tee $440 + local.get $427 + local.tee $433 i32.store $0 offset=440 - local.get $440 + local.get $433 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - i32.const 12480 - local.set $487 + local.get $478 + i32.const 12544 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -32936,54 +32805,54 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $441 + local.tee $434 i32.store $0 offset=444 global.get $~lib/memory/__stack_pointer - local.get $441 + local.get $434 i32.load $0 offset=4 - local.tee $442 + local.tee $435 i32.store $0 offset=448 - local.get $441 + local.get $434 i32.const 0 i32.const 1 i32.const 2 i32.const 4 - i32.const 14224 + i32.const 14288 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $441 + local.get $434 i32.const 1 i32.const 3 i32.const 2 i32.const 4 - i32.const 14256 + i32.const 14320 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $441 + local.get $434 i32.const 2 i32.const 3 i32.const 2 i32.const 4 - i32.const 14288 + i32.const 14352 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $441 + local.get $434 i32.const 3 i32.const 3 i32.const 2 i32.const 4 - i32.const 14320 + i32.const 14384 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $441 - local.tee $451 + local.get $434 + local.tee $444 i32.store $0 offset=452 global.get $~lib/memory/__stack_pointer - local.get $451 + local.get $444 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $452 + local.tee $445 i32.store $0 offset=456 - local.get $452 + local.get $445 call $~lib/array/Array#get:length i32.const 10 i32.eq @@ -32997,18 +32866,16 @@ unreachable end i32.const 0 - local.set $453 + local.set $446 loop $for-loop|7 - local.get $453 + local.get $446 i32.const 10 i32.lt_s - local.set $454 - local.get $454 if - local.get $452 - local.get $453 + local.get $445 + local.get $446 call $~lib/array/Array#__get - local.get $453 + local.get $446 i32.eq i32.eqz if @@ -33019,10 +32886,10 @@ call $~lib/builtins/abort unreachable end - local.get $453 + local.get $446 i32.const 1 i32.add - local.set $453 + local.set $446 br $for-loop|7 end end @@ -33033,62 +32900,62 @@ i32.const 45 i32.const 0 call $~lib/rt/__newArray - local.tee $455 + local.tee $447 i32.store $0 offset=460 global.get $~lib/memory/__stack_pointer - local.get $455 + local.get $447 i32.load $0 offset=4 - local.tee $456 + local.tee $448 i32.store $0 offset=464 - local.get $455 + local.get $447 i32.const 0 i32.const 1 i32.const 2 i32.const 34 - i32.const 14384 + i32.const 14448 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset - local.get $455 + local.get $447 i32.const 1 i32.const 3 i32.const 2 i32.const 34 - i32.const 14480 + i32.const 14544 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset - local.get $455 + local.get $447 i32.const 2 i32.const 3 i32.const 2 i32.const 34 - i32.const 14608 + i32.const 14672 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset - local.get $455 + local.get $447 i32.const 3 i32.const 1 i32.const 2 i32.const 34 - i32.const 14672 + i32.const 14736 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset - local.get $455 - local.tee $465 + local.get $447 + local.tee $457 i32.store $0 offset=468 global.get $~lib/memory/__stack_pointer - local.get $465 + local.get $457 call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat - local.tee $466 + local.tee $458 i32.store $0 offset=472 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 i32.const 34 - i32.const 14704 + i32.const 14768 call $~lib/rt/__newArray - local.tee $469 + local.tee $461 i32.store $0 offset=476 - local.get $466 + local.get $458 call $~lib/array/Array<~lib/string/String|null>#get:length i32.const 8 i32.eq @@ -33102,31 +32969,29 @@ unreachable end i32.const 0 - local.set $470 + local.set $462 loop $for-loop|8 - local.get $470 - local.get $469 + local.get $462 + local.get $461 call $~lib/array/Array<~lib/string/String|null>#get:length i32.lt_s - local.set $471 - local.get $471 if - local.get $466 - local.get $470 + local.get $458 + local.get $462 call $~lib/array/Array<~lib/string/String|null>#__get - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 - local.get $469 - local.get $470 + local.get $478 + local.get $461 + local.get $462 call $~lib/array/Array<~lib/string/String|null>#__get - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=8 - local.get $487 + local.get $478 call $~lib/string/String.__eq i32.eqz if @@ -33137,10 +33002,10 @@ call $~lib/builtins/abort unreachable end - local.get $470 + local.get $462 i32.const 1 i32.add - local.set $470 + local.set $462 br $for-loop|8 end end @@ -33151,39 +33016,39 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $472 + local.tee $463 i32.store $0 offset=480 global.get $~lib/memory/__stack_pointer - local.get $472 + local.get $463 i32.load $0 offset=4 - local.tee $473 + local.tee $464 i32.store $0 offset=484 - local.get $472 + local.get $463 i32.const 0 i32.const 0 i32.const 2 i32.const 4 - i32.const 14768 + i32.const 14832 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $472 + local.get $463 i32.const 1 i32.const 0 i32.const 2 i32.const 4 - i32.const 14800 + i32.const 14864 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $472 - local.tee $478 + local.get $463 + local.tee $469 i32.store $0 offset=488 - local.get $478 + local.get $469 call $~lib/array/Array<~lib/array/Array>#flat - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -33203,50 +33068,50 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $479 + local.tee $470 i32.store $0 offset=492 global.get $~lib/memory/__stack_pointer - local.get $479 + local.get $470 i32.load $0 offset=4 - local.tee $480 + local.tee $471 i32.store $0 offset=496 - local.get $479 + local.get $470 i32.const 0 i32.const 1 i32.const 2 i32.const 4 - i32.const 14832 + i32.const 14896 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $479 + local.get $470 i32.const 1 i32.const 1 i32.const 2 i32.const 4 - i32.const 14864 + i32.const 14928 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $479 - local.tee $485 + local.get $470 + local.tee $476 i32.store $0 offset=500 global.get $~lib/memory/__stack_pointer - local.get $485 - i32.const 14896 - local.set $487 + local.get $476 + i32.const 14960 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 offset=348 - local.get $487 + local.get $478 call $~lib/array/Array<~lib/array/Array>#map<~lib/array/Array> - local.set $487 + local.set $478 global.get $~lib/memory/__stack_pointer - local.get $487 + local.get $478 i32.store $0 - local.get $487 + local.get $478 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $486 + local.tee $477 i32.store $0 offset=504 - local.get $486 + local.get $477 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -33259,7 +33124,7 @@ call $~lib/builtins/abort unreachable end - local.get $486 + local.get $477 i32.const 0 call $~lib/array/Array#__get i32.const 1 @@ -33273,7 +33138,7 @@ call $~lib/builtins/abort unreachable end - local.get $486 + local.get $477 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -33287,7 +33152,7 @@ call $~lib/builtins/abort unreachable end - local.get $486 + local.get $477 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -33301,7 +33166,7 @@ call $~lib/builtins/abort unreachable end - local.get $486 + local.get $477 i32.const 3 call $~lib/array/Array#__get i32.const 3 @@ -33609,6 +33474,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $std/array/internalCapacity (type $i32_=>_i32) (param $array i32) (result i32) (local $buffer i32) @@ -33636,6 +33502,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $~lib/array/Array#concat (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $thisLen i32) @@ -33714,6 +33581,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#slice (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $len i32) @@ -33836,6 +33704,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $~lib/array/Array#splice (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $deleteCount i32) (result i32) (local $len i32) @@ -33966,6 +33835,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $~lib/array/Array#splice (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $deleteCount i32) (result i32) (local $len i32) @@ -34096,6 +33966,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -34152,6 +34023,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array#splice (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $deleteCount i32) (result i32) (local $len i32) @@ -34282,6 +34154,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -34328,6 +34201,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/util/number/itoa32 (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) (local $sign i32) @@ -34362,8 +34236,8 @@ i32.gt_s end if - i32.const 6432 - i32.const 6560 + i32.const 6496 + i32.const 6624 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -34372,7 +34246,7 @@ local.get $value i32.eqz if - i32.const 6624 + i32.const 6688 local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -34509,6 +34383,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/array/Array#map<~lib/string/String> (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $len i32) @@ -34517,9 +34392,8 @@ (local $i i32) (local $6 i32) (local $7 i32) - (local $8 i32) (local $result i32) - (local $10 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -34556,8 +34430,6 @@ i32.lt_s select i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $this @@ -34597,12 +34469,13 @@ end end local.get $out - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $9 + return ) (func $~lib/array/Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $len i32) @@ -34611,9 +34484,8 @@ (local $i i32) (local $6 i32) (local $7 i32) - (local $8 i32) (local $result f32) - (local $10 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -34650,8 +34522,6 @@ i32.lt_s select i32.lt_s - local.set $8 - local.get $8 if local.get $this call $~lib/array/Array#get:dataStart @@ -34685,12 +34555,13 @@ end end local.get $out - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $9 + return ) (func $~lib/array/Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $len i32) @@ -34699,9 +34570,8 @@ (local $i i32) (local $6 i32) (local $7 i32) - (local $8 i32) (local $result i32) - (local $10 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -34738,8 +34608,6 @@ i32.lt_s select i32.lt_s - local.set $8 - local.get $8 if local.get $this call $~lib/array/Array#get:dataStart @@ -34773,12 +34641,13 @@ end end local.get $out - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $9 + return ) (func $~lib/array/Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $result i32) @@ -34786,9 +34655,8 @@ (local $len i32) (local $5 i32) (local $6 i32) - (local $7 i32) (local $value i32) - (local $9 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -34822,8 +34690,6 @@ i32.lt_s select i32.lt_s - local.set $7 - local.get $7 if local.get $this call $~lib/array/Array#get:dataStart @@ -34855,12 +34721,13 @@ end end local.get $result - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/object/Object#constructor (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -34957,7 +34824,7 @@ i32.const 4 i32.eq drop - i32.const 9168 + i32.const 9232 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -35001,7 +34868,7 @@ i32.const 4 i32.eq drop - i32.const 9456 + i32.const 9520 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -35043,7 +34910,7 @@ i32.const 4 i32.le_u drop - i32.const 9632 + i32.const 9696 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -35083,7 +34950,7 @@ drop i32.const 0 drop - i32.const 9760 + i32.const 9824 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $comparator @@ -35103,7 +34970,6 @@ (local $arr i32) (local $i i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -35124,8 +34990,6 @@ local.get $i local.get $size i32.lt_s - local.set $3 - local.get $3 if local.get $arr local.get $i @@ -35143,18 +35007,18 @@ end end local.get $arr - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 + return ) (func $std/array/createRandomOrderedArray (type $i32_=>_i32) (param $size i32) (result i32) (local $arr i32) (local $i i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -35175,8 +35039,6 @@ local.get $i local.get $size i32.lt_s - local.set $3 - local.get $3 if local.get $arr local.get $i @@ -35194,12 +35056,13 @@ end end local.get $arr - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 + return ) (func $~lib/array/Array#slice (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $len i32) @@ -35218,9 +35081,8 @@ (local $thisBase i32) (local $off i32) (local $end|18 i32) - (local $19 i32) (local $ref i32) - (local $21 i32) + (local $20 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -35323,8 +35185,6 @@ local.get $off local.get $end|18 i32.lt_u - local.set $19 - local.get $19 if local.get $thisBase local.get $off @@ -35348,12 +35208,13 @@ end end local.get $slice - local.set $21 + local.set $20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $21 + local.get $20 + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -35410,6 +35271,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array<~lib/array/Array>#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -35504,9 +35366,8 @@ (func $std/array/createReverseOrderedNestedArray (type $i32_=>_i32) (param $size i32) (result i32) (local $arr i32) (local $i i32) - (local $3 i32) (local $inner i32) - (local $5 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -35527,8 +35388,6 @@ local.get $i local.get $size i32.lt_s - local.set $3 - local.get $3 if global.get $~lib/memory/__stack_pointer i32.const 0 @@ -35556,12 +35415,13 @@ end end local.get $arr - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $~lib/array/Array<~lib/array/Array>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -35618,6 +35478,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array>#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -35795,6 +35656,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array<~lib/string/String|null>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -35841,6 +35703,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array<~lib/string/String>#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -35948,7 +35811,7 @@ call $~lib/string/String#get:length i32.ge_u if - i32.const 10480 + i32.const 10544 local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -35978,6 +35841,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/string/String#concat (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $thisSize i32) @@ -36011,7 +35875,7 @@ i32.const 0 i32.eq if - i32.const 10480 + i32.const 10544 local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -36043,6 +35907,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 + return ) (func $~lib/array/Array<~lib/string/String>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -36099,6 +35964,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/string/String#substring (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $len i32) @@ -36193,7 +36059,7 @@ local.get $size i32.eqz if - i32.const 10480 + i32.const 10544 local.set $22 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -36242,6 +36108,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $22 + return ) (func $~lib/util/string/joinBooleanArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -36253,7 +36120,6 @@ (local $value i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36270,29 +36136,29 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex i32.eqz if - i32.const 10704 - i32.const 10736 + i32.const 10768 + i32.const 10800 local.get $dataStart i32.load8_u $0 select - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -36324,8 +36190,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -36342,8 +36206,8 @@ i32.const 1 i32.shl i32.add - i32.const 10704 - i32.const 10736 + i32.const 10768 + i32.const 10800 local.get $value select local.get $valueLen @@ -36393,8 +36257,8 @@ i32.const 1 i32.shl i32.add - i32.const 10704 - i32.const 10736 + i32.const 10768 + i32.const 10800 local.get $value select local.get $valueLen @@ -36413,21 +36277,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -36439,7 +36304,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36456,13 +36320,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -36480,12 +36344,12 @@ local.get $value i32.const 10 call $~lib/util/number/itoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -36515,8 +36379,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -36584,21 +36446,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/number/utoa32 (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) (local $out i32) @@ -36631,8 +36494,8 @@ i32.gt_s end if - i32.const 6432 - i32.const 6560 + i32.const 6496 + i32.const 6624 i32.const 350 i32.const 5 call $~lib/builtins/abort @@ -36641,7 +36504,7 @@ local.get $value i32.eqz if - i32.const 6624 + i32.const 6688 local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -36745,6 +36608,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $12 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -36756,7 +36620,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36773,13 +36636,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -36797,12 +36660,12 @@ local.get $value i32.const 10 call $~lib/util/number/utoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -36832,8 +36695,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -36901,21 +36762,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/number/dtoa (type $f64_=>_i32) (param $value f64) (result i32) (local $size i32) @@ -36933,7 +36795,7 @@ f64.const 0 f64.eq if - i32.const 11232 + i32.const 11296 local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -36953,7 +36815,7 @@ local.get $value f64.ne if - i32.const 11264 + i32.const 11328 local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -36962,8 +36824,8 @@ local.get $3 return end - i32.const 11296 - i32.const 11344 + i32.const 11360 + i32.const 11408 local.get $value f64.const 0 f64.lt @@ -36976,7 +36838,7 @@ local.get $3 return end - i32.const 11376 + i32.const 11440 local.get $value call $~lib/util/number/dtoa_core i32.const 1 @@ -36989,7 +36851,7 @@ local.tee $result i32.store $0 local.get $result - i32.const 11376 + i32.const 11440 local.get $size memory.copy $0 $0 local.get $result @@ -36999,6 +36861,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/util/string/joinFloatArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -37009,7 +36872,6 @@ (local $value f64) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -37026,13 +36888,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $11 + i32.const 10544 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $lastIndex @@ -37041,12 +36903,12 @@ local.get $dataStart f64.load $0 call $~lib/util/number/dtoa - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $separator @@ -37076,8 +36938,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $10 - local.get $10 if local.get $dataStart local.get $i @@ -37145,21 +37005,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $result - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/util/string/joinStringArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -37167,14 +37028,12 @@ (local $estLen i32) (local $value i32) (local $i i32) - (local $8 i32) (local $offset i32) (local $sepLen i32) (local $result i32) - (local $i|12 i32) - (local $13 i32) + (local $i|11 i32) (local $valueLen i32) - (local $15 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37194,13 +37053,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $15 + i32.const 10544 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 return end local.get $lastIndex @@ -37215,14 +37074,14 @@ if (result i32) local.get $4 else - i32.const 10480 + i32.const 10544 end - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 return end i32.const 0 @@ -37233,8 +37092,6 @@ local.get $i local.get $length i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -37280,17 +37137,15 @@ local.tee $result i32.store $0 offset=8 i32.const 0 - local.set $i|12 + local.set $i|11 loop $for-loop|1 - local.get $i|12 + local.get $i|11 local.get $lastIndex i32.lt_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $dataStart - local.get $i|12 + local.get $i|11 i32.const 2 i32.shl i32.add @@ -37336,10 +37191,10 @@ i32.add local.set $offset end - local.get $i|12 + local.get $i|11 i32.const 1 i32.add - local.set $i|12 + local.set $i|11 br $for-loop|1 end end @@ -37369,12 +37224,13 @@ memory.copy $0 $0 end local.get $result - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -37386,7 +37242,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -37403,13 +37258,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -37427,12 +37282,12 @@ local.get $value i32.const 10 call $~lib/util/number/itoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -37462,8 +37317,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -37531,21 +37384,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -37557,7 +37411,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -37574,13 +37427,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -37598,12 +37451,12 @@ local.get $value i32.const 10 call $~lib/util/number/utoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -37633,8 +37486,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -37702,21 +37553,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -37728,7 +37580,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -37745,13 +37596,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -37769,12 +37620,12 @@ local.get $value i32.const 10 call $~lib/util/number/itoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -37804,8 +37655,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -37873,21 +37722,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/number/utoa64 (type $i64_i32_=>_i32) (param $value i64) (param $radix i32) (result i32) (local $out i32) @@ -37925,8 +37775,8 @@ i32.gt_s end if - i32.const 6432 - i32.const 6560 + i32.const 6496 + i32.const 6624 i32.const 401 i32.const 5 call $~lib/builtins/abort @@ -37937,7 +37787,7 @@ i64.ne i32.eqz if - i32.const 6624 + i32.const 6688 local.set $17 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -38074,6 +37924,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -38085,7 +37936,6 @@ (local $value|9 i64) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -38102,13 +37952,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -38126,12 +37976,12 @@ local.get $value i32.const 10 call $~lib/util/number/utoa64 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -38161,8 +38011,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -38230,21 +38078,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/number/itoa64 (type $i64_i32_=>_i32) (param $value i64) (param $radix i32) (result i32) (local $sign i32) @@ -38283,8 +38132,8 @@ i32.gt_s end if - i32.const 6432 - i32.const 6560 + i32.const 6496 + i32.const 6624 i32.const 431 i32.const 5 call $~lib/builtins/abort @@ -38295,7 +38144,7 @@ i64.ne i32.eqz if - i32.const 6624 + i32.const 6688 local.set $18 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -38468,6 +38317,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $18 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -38479,7 +38329,6 @@ (local $value|9 i64) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -38496,13 +38345,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -38522,12 +38371,12 @@ i64.extend_i32_s i32.const 10 call $~lib/util/number/itoa64 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -38557,8 +38406,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -38626,21 +38473,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -38652,7 +38500,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -38669,13 +38516,13 @@ i32.const 0 i32.lt_s if - i32.const 10480 - local.set $12 + i32.const 10544 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -38693,12 +38540,12 @@ local.get $value i32.const 10 call $~lib/util/number/utoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -38728,8 +38575,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -38797,38 +38642,37 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/array/Array<~lib/array/Array>#flat (type $i32_=>_i32) (param $this i32) (result i32) (local $ptr i32) (local $len i32) (local $size i32) (local $i i32) - (local $5 i32) (local $child i32) (local $byteLength i32) (local $outBuffer i32) (local $outArray i32) (local $resultOffset i32) - (local $i|11 i32) - (local $12 i32) - (local $child|13 i32) + (local $i|10 i32) + (local $child|11 i32) (local $childDataLength i32) - (local $15 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -38854,8 +38698,6 @@ local.get $i local.get $len i32.lt_s - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -38918,28 +38760,26 @@ i32.const 0 local.set $resultOffset i32.const 0 - local.set $i|11 + local.set $i|10 loop $for-loop|1 - local.get $i|11 + local.get $i|10 local.get $len i32.lt_s - local.set $12 - local.get $12 if block $for-continue|1 local.get $ptr - local.get $i|11 + local.get $i|10 i32.const 2 i32.shl i32.add i32.load $0 - local.set $child|13 - local.get $child|13 + local.set $child|11 + local.get $child|11 i32.eqz if br $for-continue|1 end - local.get $child|13 + local.get $child|11 i32.load $0 offset=12 i32.const 2 i32.shl @@ -38947,7 +38787,7 @@ local.get $outBuffer local.get $resultOffset i32.add - local.get $child|13 + local.get $child|11 i32.load $0 offset=4 local.get $childDataLength memory.copy $0 $0 @@ -38956,42 +38796,40 @@ i32.add local.set $resultOffset end - local.get $i|11 + local.get $i|10 i32.const 1 i32.add - local.set $i|11 + local.set $i|10 br $for-loop|1 end end i32.const 0 drop local.get $outArray - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 + return ) (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat (type $i32_=>_i32) (param $this i32) (result i32) (local $ptr i32) (local $len i32) (local $size i32) (local $i i32) - (local $5 i32) (local $child i32) (local $byteLength i32) (local $outBuffer i32) (local $outArray i32) (local $resultOffset i32) - (local $i|11 i32) - (local $12 i32) - (local $child|13 i32) + (local $i|10 i32) + (local $child|11 i32) (local $childDataLength i32) - (local $i|15 i32) - (local $16 i32) + (local $i|13 i32) (local $ref i32) - (local $18 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -39017,8 +38855,6 @@ local.get $i local.get $len i32.lt_s - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -39081,28 +38917,26 @@ i32.const 0 local.set $resultOffset i32.const 0 - local.set $i|11 + local.set $i|10 loop $for-loop|1 - local.get $i|11 + local.get $i|10 local.get $len i32.lt_s - local.set $12 - local.get $12 if block $for-continue|1 local.get $ptr - local.get $i|11 + local.get $i|10 i32.const 2 i32.shl i32.add i32.load $0 - local.set $child|13 - local.get $child|13 + local.set $child|11 + local.get $child|11 i32.eqz if br $for-continue|1 end - local.get $child|13 + local.get $child|11 i32.load $0 offset=12 i32.const 2 i32.shl @@ -39110,7 +38944,7 @@ local.get $outBuffer local.get $resultOffset i32.add - local.get $child|13 + local.get $child|11 i32.load $0 offset=4 local.get $childDataLength memory.copy $0 $0 @@ -39119,26 +38953,24 @@ i32.add local.set $resultOffset end - local.get $i|11 + local.get $i|10 i32.const 1 i32.add - local.set $i|11 + local.set $i|10 br $for-loop|1 end end i32.const 1 drop i32.const 0 - local.set $i|15 + local.set $i|13 loop $for-loop|2 - local.get $i|15 + local.get $i|13 local.get $size i32.lt_s - local.set $16 - local.get $16 if local.get $outBuffer - local.get $i|15 + local.get $i|13 i32.const 2 i32.shl i32.add @@ -39148,19 +38980,20 @@ local.get $ref i32.const 1 call $~lib/rt/itcms/__link - local.get $i|15 + local.get $i|13 i32.const 1 i32.add - local.set $i|15 + local.set $i|13 br $for-loop|2 end end local.get $outArray - local.set $18 + local.set $15 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $18 + local.get $15 + return ) ) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index dc9fd648fb..ab17e65125 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -19,6 +19,7 @@ (type $i32_i64_=>_i32 (func_subtype (param i32 i64) (result i32) func)) (type $i32_f32_i32_i32_=>_none (func_subtype (param i32 f32 i32 i32) func)) (type $i32_i32_=>_f32 (func_subtype (param i32 i32) (result f32) func)) + (type $i32_f32_i32_=>_none (func_subtype (param i32 f32 i32) func)) (type $i32_i32_=>_f64 (func_subtype (param i32 i32) (result f64) func)) (type $i32_i64_i64_i32_i64_i32_=>_i32 (func_subtype (param i32 i64 i64 i32 i64 i32) (result i32) func)) (type $i32_i64_i32_=>_none (func_subtype (param i32 i64 i32) func)) @@ -36,8 +37,8 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $std/array/arr (mut i32) (i32.const 0)) - (global $std/array/i (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) + (global $std/array/i (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) @@ -49,7 +50,7 @@ (global $~lib/util/number/_K (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 48896)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 48960)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 1036) ",") @@ -298,362 +299,362 @@ (data (i32.const 6376) "\01") (data (i32.const 6396) "|") (data (i32.const 6408) "\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (data (i32.const 6524) "<") - (data (i32.const 6536) "\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l") - (data (i32.const 6588) "\1c") - (data (i32.const 6600) "\0e\00\00\00\08\00\00\00\01") - (data (i32.const 6620) "\1c") - (data (i32.const 6632) "\0e\00\00\00\08\00\00\00\02") + (data (i32.const 6524) "|") + (data (i32.const 6536) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") (data (i32.const 6652) "\1c") - (data (i32.const 6664) "\0e\00\00\00\08\00\00\00\03") + (data (i32.const 6664) "\0e\00\00\00\08\00\00\00\01") (data (i32.const 6684) "\1c") - (data (i32.const 6696) "\0e\00\00\00\08\00\00\00\04") + (data (i32.const 6696) "\0e\00\00\00\08\00\00\00\02") (data (i32.const 6716) "\1c") - (data (i32.const 6728) "\0e\00\00\00\08\00\00\00\05") + (data (i32.const 6728) "\0e\00\00\00\08\00\00\00\03") (data (i32.const 6748) "\1c") - (data (i32.const 6760) "\0e\00\00\00\08\00\00\00\06") - (data (i32.const 6780) ",") - (data (i32.const 6792) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 6828) "\1c") - (data (i32.const 6840) "\0e\00\00\00\08\00\00\00\07") - (data (i32.const 6860) "\1c") - (data (i32.const 6872) "\0e\00\00\00\08\00\00\00\08") + (data (i32.const 6760) "\0e\00\00\00\08\00\00\00\04") + (data (i32.const 6780) "\1c") + (data (i32.const 6792) "\0e\00\00\00\08\00\00\00\05") + (data (i32.const 6812) "\1c") + (data (i32.const 6824) "\0e\00\00\00\08\00\00\00\06") + (data (i32.const 6844) ",") + (data (i32.const 6856) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") (data (i32.const 6892) "\1c") - (data (i32.const 6904) "\0e\00\00\00\08\00\00\00\t") + (data (i32.const 6904) "\0e\00\00\00\08\00\00\00\07") (data (i32.const 6924) "\1c") - (data (i32.const 6936) "\0e\00\00\00\08\00\00\00\n") + (data (i32.const 6936) "\0e\00\00\00\08\00\00\00\08") (data (i32.const 6956) "\1c") - (data (i32.const 6968) "\0e\00\00\00\08\00\00\00\0b") + (data (i32.const 6968) "\0e\00\00\00\08\00\00\00\t") (data (i32.const 6988) "\1c") - (data (i32.const 7000) "\0e\00\00\00\08\00\00\00\0c") + (data (i32.const 7000) "\0e\00\00\00\08\00\00\00\n") (data (i32.const 7020) "\1c") - (data (i32.const 7032) "\0e\00\00\00\08\00\00\00\r") + (data (i32.const 7032) "\0e\00\00\00\08\00\00\00\0b") (data (i32.const 7052) "\1c") - (data (i32.const 7064) "\0e\00\00\00\08\00\00\00\0e") + (data (i32.const 7064) "\0e\00\00\00\08\00\00\00\0c") (data (i32.const 7084) "\1c") - (data (i32.const 7096) "\0e\00\00\00\08\00\00\00\0f") + (data (i32.const 7096) "\0e\00\00\00\08\00\00\00\r") (data (i32.const 7116) "\1c") - (data (i32.const 7128) "\0e\00\00\00\08\00\00\00\10") + (data (i32.const 7128) "\0e\00\00\00\08\00\00\00\0e") (data (i32.const 7148) "\1c") - (data (i32.const 7160) "\0e\00\00\00\08\00\00\00\11") + (data (i32.const 7160) "\0e\00\00\00\08\00\00\00\0f") (data (i32.const 7180) "\1c") - (data (i32.const 7192) "\0e\00\00\00\08\00\00\00\12") + (data (i32.const 7192) "\0e\00\00\00\08\00\00\00\10") (data (i32.const 7212) "\1c") - (data (i32.const 7224) "\0e\00\00\00\08\00\00\00\13") + (data (i32.const 7224) "\0e\00\00\00\08\00\00\00\11") (data (i32.const 7244) "\1c") - (data (i32.const 7256) "\0e\00\00\00\08\00\00\00\14") + (data (i32.const 7256) "\0e\00\00\00\08\00\00\00\12") (data (i32.const 7276) "\1c") - (data (i32.const 7288) "\0f\00\00\00\08\00\00\00\15") + (data (i32.const 7288) "\0e\00\00\00\08\00\00\00\13") (data (i32.const 7308) "\1c") - (data (i32.const 7320) "\0f\00\00\00\08\00\00\00\16") + (data (i32.const 7320) "\0e\00\00\00\08\00\00\00\14") (data (i32.const 7340) "\1c") - (data (i32.const 7352) "\0f\00\00\00\08\00\00\00\17") + (data (i32.const 7352) "\0f\00\00\00\08\00\00\00\15") (data (i32.const 7372) "\1c") - (data (i32.const 7384) "\0f\00\00\00\08\00\00\00\18") + (data (i32.const 7384) "\0f\00\00\00\08\00\00\00\16") (data (i32.const 7404) "\1c") - (data (i32.const 7416) "\0f\00\00\00\08\00\00\00\19") - (data (i32.const 7436) "|") - (data (i32.const 7448) "\02\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 7564) "<") - (data (i32.const 7576) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 7628) "\1c") - (data (i32.const 7640) "\02\00\00\00\02\00\00\000") - (data (i32.const 7660) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 8060) "\1c\04") - (data (i32.const 8072) "\02\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 9116) "\\") - (data (i32.const 9128) "\02\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 9212) "\1c") - (data (i32.const 9224) "\11\00\00\00\08\00\00\00\1a") - (data (i32.const 9244) "\1c") - (data (i32.const 9256) "\12\00\00\00\08\00\00\00\1b") + (data (i32.const 7416) "\0f\00\00\00\08\00\00\00\17") + (data (i32.const 7436) "\1c") + (data (i32.const 7448) "\0f\00\00\00\08\00\00\00\18") + (data (i32.const 7468) "\1c") + (data (i32.const 7480) "\0f\00\00\00\08\00\00\00\19") + (data (i32.const 7500) "|") + (data (i32.const 7512) "\02\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 7628) "<") + (data (i32.const 7640) "\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 7692) "\1c") + (data (i32.const 7704) "\02\00\00\00\02\00\00\000") + (data (i32.const 7724) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 8124) "\1c\04") + (data (i32.const 8136) "\02\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 9180) "\\") + (data (i32.const 9192) "\02\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") (data (i32.const 9276) "\1c") - (data (i32.const 9288) "\13\00\00\00\08\00\00\00\1c") + (data (i32.const 9288) "\11\00\00\00\08\00\00\00\1a") (data (i32.const 9308) "\1c") - (data (i32.const 9320) "\13\00\00\00\08\00\00\00\1d") + (data (i32.const 9320) "\12\00\00\00\08\00\00\00\1b") (data (i32.const 9340) "\1c") - (data (i32.const 9352) "\13\00\00\00\08\00\00\00\1e") + (data (i32.const 9352) "\13\00\00\00\08\00\00\00\1c") (data (i32.const 9372) "\1c") - (data (i32.const 9384) "\0e\00\00\00\08\00\00\00\1f") + (data (i32.const 9384) "\13\00\00\00\08\00\00\00\1d") (data (i32.const 9404) "\1c") - (data (i32.const 9416) "\0e\00\00\00\08\00\00\00 ") + (data (i32.const 9416) "\13\00\00\00\08\00\00\00\1e") (data (i32.const 9436) "\1c") - (data (i32.const 9448) "\0e\00\00\00\08\00\00\00!") + (data (i32.const 9448) "\0e\00\00\00\08\00\00\00\1f") (data (i32.const 9468) "\1c") - (data (i32.const 9480) "\0e\00\00\00\08\00\00\00\"") + (data (i32.const 9480) "\0e\00\00\00\08\00\00\00 ") (data (i32.const 9500) "\1c") - (data (i32.const 9512) "\14\00\00\00\08\00\00\00#") + (data (i32.const 9512) "\0e\00\00\00\08\00\00\00!") (data (i32.const 9532) "\1c") - (data (i32.const 9544) "\14\00\00\00\08\00\00\00$") + (data (i32.const 9544) "\0e\00\00\00\08\00\00\00\"") (data (i32.const 9564) "\1c") - (data (i32.const 9576) "\15\00\00\00\08\00\00\00%") + (data (i32.const 9576) "\14\00\00\00\08\00\00\00#") (data (i32.const 9596) "\1c") - (data (i32.const 9608) "\15\00\00\00\08\00\00\00&") + (data (i32.const 9608) "\14\00\00\00\08\00\00\00$") (data (i32.const 9628) "\1c") - (data (i32.const 9640) "\14\00\00\00\08\00\00\00\'") + (data (i32.const 9640) "\15\00\00\00\08\00\00\00%") (data (i32.const 9660) "\1c") - (data (i32.const 9672) "\14\00\00\00\08\00\00\00(") + (data (i32.const 9672) "\15\00\00\00\08\00\00\00&") (data (i32.const 9692) "\1c") - (data (i32.const 9704) "\14\00\00\00\08\00\00\00)") + (data (i32.const 9704) "\14\00\00\00\08\00\00\00\'") (data (i32.const 9724) "\1c") - (data (i32.const 9736) "\14\00\00\00\08\00\00\00*") + (data (i32.const 9736) "\14\00\00\00\08\00\00\00(") (data (i32.const 9756) "\1c") - (data (i32.const 9768) "\14\00\00\00\08\00\00\00+") + (data (i32.const 9768) "\14\00\00\00\08\00\00\00)") (data (i32.const 9788) "\1c") - (data (i32.const 9800) "\15\00\00\00\08\00\00\00,") + (data (i32.const 9800) "\14\00\00\00\08\00\00\00*") (data (i32.const 9820) "\1c") - (data (i32.const 9832) "\15\00\00\00\08\00\00\00-") + (data (i32.const 9832) "\14\00\00\00\08\00\00\00+") (data (i32.const 9852) "\1c") - (data (i32.const 9864) "\14\00\00\00\08\00\00\00.") + (data (i32.const 9864) "\15\00\00\00\08\00\00\00,") (data (i32.const 9884) "\1c") - (data (i32.const 9896) "\14\00\00\00\08\00\00\00/") + (data (i32.const 9896) "\15\00\00\00\08\00\00\00-") (data (i32.const 9916) "\1c") - (data (i32.const 9928) "\14\00\00\00\08\00\00\000") - (data (i32.const 9948) "\bc") - (data (i32.const 9960) "\02\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?") - (data (i32.const 10140) "\1c") - (data (i32.const 10152) "\01\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf") - (data (i32.const 10172) "\1c") - (data (i32.const 10184) "\18\00\00\00\08\00\00\001") + (data (i32.const 9928) "\14\00\00\00\08\00\00\00.") + (data (i32.const 9948) "\1c") + (data (i32.const 9960) "\14\00\00\00\08\00\00\00/") + (data (i32.const 9980) "\1c") + (data (i32.const 9992) "\14\00\00\00\08\00\00\000") + (data (i32.const 10012) "\bc") + (data (i32.const 10024) "\02\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?") (data (i32.const 10204) "\1c") - (data (i32.const 10216) "\01\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") - (data (i32.const 10236) "<") - (data (i32.const 10248) "\01\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data (i32.const 10216) "\01\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf") + (data (i32.const 10236) "\1c") + (data (i32.const 10248) "\18\00\00\00\08\00\00\001") + (data (i32.const 10268) "\1c") + (data (i32.const 10280) "\01\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") (data (i32.const 10300) "<") - (data (i32.const 10312) "\01\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") - (data (i32.const 10364) "\\") - (data (i32.const 10376) "\01\00\00\00@") - (data (i32.const 10390) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") - (data (i32.const 10430) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") - (data (i32.const 10460) "\1c") - (data (i32.const 10472) "\19\00\00\00\08\00\00\002") - (data (i32.const 10492) "\\") - (data (i32.const 10504) "\01\00\00\00@") - (data (i32.const 10518) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") - (data (i32.const 10550) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") - (data (i32.const 10588) ",") - (data (i32.const 10600) "\01\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") - (data (i32.const 10636) "\1c") - (data (i32.const 10648) "\1a\00\00\00\08\00\00\003") - (data (i32.const 10668) ",") - (data (i32.const 10680) "\01\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") - (data (i32.const 10716) ",") - (data (i32.const 10728) "\01\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") - (data (i32.const 10764) "\1c") - (data (i32.const 10776) "\1b\00\00\00\08\00\00\004") - (data (i32.const 10796) ",") - (data (i32.const 10808) "\01\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") - (data (i32.const 10844) "\1c") - (data (i32.const 10856) "\01") - (data (i32.const 10876) "\1c") - (data (i32.const 10888) "\01\00\00\00\04\00\00\00\01") + (data (i32.const 10312) "\01\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data (i32.const 10364) "<") + (data (i32.const 10376) "\01\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") + (data (i32.const 10428) "\\") + (data (i32.const 10440) "\01\00\00\00@") + (data (i32.const 10454) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") + (data (i32.const 10494) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") + (data (i32.const 10524) "\1c") + (data (i32.const 10536) "\19\00\00\00\08\00\00\002") + (data (i32.const 10556) "\\") + (data (i32.const 10568) "\01\00\00\00@") + (data (i32.const 10582) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") + (data (i32.const 10614) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") + (data (i32.const 10652) ",") + (data (i32.const 10664) "\01\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") + (data (i32.const 10700) "\1c") + (data (i32.const 10712) "\1a\00\00\00\08\00\00\003") + (data (i32.const 10732) ",") + (data (i32.const 10744) "\01\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") + (data (i32.const 10780) ",") + (data (i32.const 10792) "\01\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") + (data (i32.const 10828) "\1c") + (data (i32.const 10840) "\1b\00\00\00\08\00\00\004") + (data (i32.const 10860) ",") + (data (i32.const 10872) "\01\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") (data (i32.const 10908) "\1c") - (data (i32.const 10920) "\01\00\00\00\08\00\00\00\02\00\00\00\01") - (data (i32.const 10940) ",") - (data (i32.const 10952) "\01\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01") - (data (i32.const 10988) ",") - (data (i32.const 11000) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 11036) "\1c") - (data (i32.const 11048) "\1a\00\00\00\08\00\00\005") - (data (i32.const 11068) "\1c") - (data (i32.const 11080) "\01\00\00\00\04\00\00\00\01") + (data (i32.const 10920) "\01") + (data (i32.const 10940) "\1c") + (data (i32.const 10952) "\01\00\00\00\04\00\00\00\01") + (data (i32.const 10972) "\1c") + (data (i32.const 10984) "\01\00\00\00\08\00\00\00\02\00\00\00\01") + (data (i32.const 11004) ",") + (data (i32.const 11016) "\01\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01") + (data (i32.const 11052) ",") + (data (i32.const 11064) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") (data (i32.const 11100) "\1c") - (data (i32.const 11112) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 11112) "\1a\00\00\00\08\00\00\005") (data (i32.const 11132) "\1c") - (data (i32.const 11144) "\1c\00\00\00\08\00\00\006") + (data (i32.const 11144) "\01\00\00\00\04\00\00\00\01") (data (i32.const 11164) "\1c") - (data (i32.const 11176) "\1a\00\00\00\08\00\00\007") + (data (i32.const 11176) "\01\00\00\00\08\00\00\00\01\00\00\00\02") (data (i32.const 11196) "\1c") - (data (i32.const 11208) "\1a\00\00\00\08\00\00\008") + (data (i32.const 11208) "\1c\00\00\00\08\00\00\006") (data (i32.const 11228) "\1c") - (data (i32.const 11240) "\1a\00\00\00\08\00\00\009") + (data (i32.const 11240) "\1a\00\00\00\08\00\00\007") (data (i32.const 11260) "\1c") - (data (i32.const 11272) "\1a\00\00\00\08\00\00\00:") + (data (i32.const 11272) "\1a\00\00\00\08\00\00\008") (data (i32.const 11292) "\1c") - (data (i32.const 11304) "\1e\00\00\00\08\00\00\00;") + (data (i32.const 11304) "\1a\00\00\00\08\00\00\009") (data (i32.const 11324) "\1c") - (data (i32.const 11336) "!\00\00\00\08\00\00\00<") + (data (i32.const 11336) "\1a\00\00\00\08\00\00\00:") (data (i32.const 11356) "\1c") - (data (i32.const 11368) "\02\00\00\00\02\00\00\00a") + (data (i32.const 11368) "\1e\00\00\00\08\00\00\00;") (data (i32.const 11388) "\1c") - (data (i32.const 11400) "\02\00\00\00\02\00\00\00b") + (data (i32.const 11400) "!\00\00\00\08\00\00\00<") (data (i32.const 11420) "\1c") - (data (i32.const 11432) "\02\00\00\00\04\00\00\00a\00b") + (data (i32.const 11432) "\02\00\00\00\02\00\00\00a") (data (i32.const 11452) "\1c") - (data (i32.const 11464) "\02\00\00\00\04\00\00\00b\00a") + (data (i32.const 11464) "\02\00\00\00\02\00\00\00b") (data (i32.const 11484) "\1c") - (data (i32.const 11496) "\02") - (data (i32.const 11516) ",") - (data (i32.const 11528) "\01\00\00\00\1c\00\00\00p,\00\00\90,\00\00p,\00\00\b0,\00\00\d0,\00\00\f0,") - (data (i32.const 11564) ",") - (data (i32.const 11576) "\01\00\00\00\1c\00\00\00\f0,\00\00p,\00\00p,\00\00\b0,\00\00\90,\00\00\d0,") - (data (i32.const 11612) "\1c") - (data (i32.const 11624) "#\00\00\00\08\00\00\00=") - (data (i32.const 11644) "\1c") - (data (i32.const 11656) "$\00\00\00\08\00\00\00>") + (data (i32.const 11496) "\02\00\00\00\04\00\00\00a\00b") + (data (i32.const 11516) "\1c") + (data (i32.const 11528) "\02\00\00\00\04\00\00\00b\00a") + (data (i32.const 11548) "\1c") + (data (i32.const 11560) "\02") + (data (i32.const 11580) ",") + (data (i32.const 11592) "\01\00\00\00\1c\00\00\00\b0,\00\00\d0,\00\00\b0,\00\00\f0,\00\00\10-\00\000-") + (data (i32.const 11628) ",") + (data (i32.const 11640) "\01\00\00\00\1c\00\00\000-\00\00\b0,\00\00\b0,\00\00\f0,\00\00\d0,\00\00\10-") (data (i32.const 11676) "\1c") - (data (i32.const 11688) "\01\00\00\00\02\00\00\00\01") + (data (i32.const 11688) "#\00\00\00\08\00\00\00=") (data (i32.const 11708) "\1c") - (data (i32.const 11720) "\02\00\00\00\08\00\00\00t\00r\00u\00e") + (data (i32.const 11720) "$\00\00\00\08\00\00\00>") (data (i32.const 11740) "\1c") - (data (i32.const 11752) "\02\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data (i32.const 11752) "\01\00\00\00\02\00\00\00\01") (data (i32.const 11772) "\1c") - (data (i32.const 11784) "\02\00\00\00\02\00\00\00,") - (data (i32.const 11804) ",") - (data (i32.const 11816) "\02\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") - (data (i32.const 11852) "\1c") - (data (i32.const 11864) "\01\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data (i32.const 11884) "\1c") - (data (i32.const 11896) "\02\00\00\00\n\00\00\001\00-\002\00-\003") + (data (i32.const 11784) "\02\00\00\00\08\00\00\00t\00r\00u\00e") + (data (i32.const 11804) "\1c") + (data (i32.const 11816) "\02\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data (i32.const 11836) "\1c") + (data (i32.const 11848) "\02\00\00\00\02\00\00\00,") + (data (i32.const 11868) ",") + (data (i32.const 11880) "\02\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") (data (i32.const 11916) "\1c") - (data (i32.const 11928) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 11928) "\01\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") (data (i32.const 11948) "\1c") - (data (i32.const 11960) "\02\00\00\00\02\00\00\00-") + (data (i32.const 11960) "\02\00\00\00\n\00\00\001\00-\002\00-\003") (data (i32.const 11980) "\1c") - (data (i32.const 11992) "\01\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 11992) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") (data (i32.const 12012) "\1c") - (data (i32.const 12024) "\02\00\00\00\04\00\00\00_\00_") - (data (i32.const 12044) "L") - (data (i32.const 12056) "\02\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 12124) "L") - (data (i32.const 12136) "\01\00\00\000") - (data (i32.const 12158) "\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") - (data (i32.const 12204) "\1c") - (data (i32.const 12216) "\02\00\00\00\04\00\00\00,\00 ") - (data (i32.const 12236) "\1c") - (data (i32.const 12248) "\02\00\00\00\06\00\00\000\00.\000") + (data (i32.const 12024) "\02\00\00\00\02\00\00\00-") + (data (i32.const 12044) "\1c") + (data (i32.const 12056) "\01\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 12076) "\1c") + (data (i32.const 12088) "\02\00\00\00\04\00\00\00_\00_") + (data (i32.const 12108) "L") + (data (i32.const 12120) "\02\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008") + (data (i32.const 12188) "L") + (data (i32.const 12200) "\01\00\00\000") + (data (i32.const 12222) "\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") (data (i32.const 12268) "\1c") - (data (i32.const 12280) "\02\00\00\00\06\00\00\00N\00a\00N") - (data (i32.const 12300) ",") - (data (i32.const 12312) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 12348) ",") - (data (i32.const 12360) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 12456) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") - (data (i32.const 13804) "\1c") - (data (i32.const 13816) "\01") - (data (i32.const 13836) "\1c") - (data (i32.const 13848) "\01\00\00\00\04\00\00\00\01") + (data (i32.const 12280) "\02\00\00\00\04\00\00\00,\00 ") + (data (i32.const 12300) "\1c") + (data (i32.const 12312) "\02\00\00\00\06\00\00\000\00.\000") + (data (i32.const 12332) "\1c") + (data (i32.const 12344) "\02\00\00\00\06\00\00\00N\00a\00N") + (data (i32.const 12364) ",") + (data (i32.const 12376) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 12412) ",") + (data (i32.const 12424) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 12520) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") (data (i32.const 13868) "\1c") - (data (i32.const 13880) "\01\00\00\00\08\00\00\00\01\00\00\00\02") - (data (i32.const 13900) ",") - (data (i32.const 13912) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 13948) "\1c") - (data (i32.const 13960) "\02\00\00\00\06\00\00\001\00,\002") - (data (i32.const 13980) ",") - (data (i32.const 13992) "\02\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") - (data (i32.const 14028) "\1c") - (data (i32.const 14040) "\01\00\00\00\03\00\00\00\01\ff") - (data (i32.const 14060) "\1c") - (data (i32.const 14072) "\02\00\00\00\0c\00\00\001\00,\00-\001\00,\000") + (data (i32.const 13880) "\01") + (data (i32.const 13900) "\1c") + (data (i32.const 13912) "\01\00\00\00\04\00\00\00\01") + (data (i32.const 13932) "\1c") + (data (i32.const 13944) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 13964) ",") + (data (i32.const 13976) "\01\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 14012) "\1c") + (data (i32.const 14024) "\02\00\00\00\06\00\00\001\00,\002") + (data (i32.const 14044) ",") + (data (i32.const 14056) "\02\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") (data (i32.const 14092) "\1c") - (data (i32.const 14104) "\01\00\00\00\03\00\00\00\80\81\80") - (data (i32.const 14124) ",") - (data (i32.const 14136) "\02\00\00\00\1c\00\00\00-\001\002\008\00,\00-\001\002\007\00,\00-\001\002\008") - (data (i32.const 14172) "\1c") - (data (i32.const 14184) "\01\00\00\00\06\00\00\00\01\00\ff\ff") - (data (i32.const 14204) ",") - (data (i32.const 14216) "\02\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") - (data (i32.const 14252) "\1c") - (data (i32.const 14264) "\01\00\00\00\04\00\00\00\00\80\01\ff") - (data (i32.const 14284) ",") - (data (i32.const 14296) "\02\00\00\00\16\00\00\00-\003\002\007\006\008\00,\00-\002\005\005") - (data (i32.const 14332) "\1c") - (data (i32.const 14344) "\01\00\00\00\08\00\00\00\00\00\00\80\80\ff\ff\ff") - (data (i32.const 14364) "<") - (data (i32.const 14376) "\02\00\00\00 \00\00\00-\002\001\004\007\004\008\003\006\004\008\00,\00-\001\002\008") - (data (i32.const 14428) ",") - (data (i32.const 14440) "\01\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") - (data (i32.const 14476) "L") - (data (i32.const 14488) "\02\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") - (data (i32.const 14556) "<") - (data (i32.const 14568) "\01\00\00\00(\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") - (data (i32.const 14620) "\9c") - (data (i32.const 14632) "\02\00\00\00~\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") - (data (i32.const 14780) ",") - (data (i32.const 14792) "\01\00\00\00\1c\00\00\00\f0,\00\00p,\00\00p,\00\00\b0,\00\00\90,\00\00\d0,") - (data (i32.const 14828) ",") - (data (i32.const 14840) "\02\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") - (data (i32.const 14876) "\1c") - (data (i32.const 14888) "\02\00\00\00\02\00\00\002") - (data (i32.const 14908) "\1c") - (data (i32.const 14920) "\02\00\00\00\02\00\00\004") - (data (i32.const 14940) ",") - (data (i32.const 14952) "\01\00\00\00\10\00\00\00\c04\00\000:\00\00\00\00\00\00P:") - (data (i32.const 14988) "\1c") - (data (i32.const 15000) "\02\00\00\00\0c\00\00\001\00,\002\00,\00,\004") - (data (i32.const 15020) "\1c") - (data (i32.const 15032) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 14104) "\01\00\00\00\03\00\00\00\01\ff") + (data (i32.const 14124) "\1c") + (data (i32.const 14136) "\02\00\00\00\0c\00\00\001\00,\00-\001\00,\000") + (data (i32.const 14156) "\1c") + (data (i32.const 14168) "\01\00\00\00\03\00\00\00\80\81\80") + (data (i32.const 14188) ",") + (data (i32.const 14200) "\02\00\00\00\1c\00\00\00-\001\002\008\00,\00-\001\002\007\00,\00-\001\002\008") + (data (i32.const 14236) "\1c") + (data (i32.const 14248) "\01\00\00\00\06\00\00\00\01\00\ff\ff") + (data (i32.const 14268) ",") + (data (i32.const 14280) "\02\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") + (data (i32.const 14316) "\1c") + (data (i32.const 14328) "\01\00\00\00\04\00\00\00\00\80\01\ff") + (data (i32.const 14348) ",") + (data (i32.const 14360) "\02\00\00\00\16\00\00\00-\003\002\007\006\008\00,\00-\002\005\005") + (data (i32.const 14396) "\1c") + (data (i32.const 14408) "\01\00\00\00\08\00\00\00\00\00\00\80\80\ff\ff\ff") + (data (i32.const 14428) "<") + (data (i32.const 14440) "\02\00\00\00 \00\00\00-\002\001\004\007\004\008\003\006\004\008\00,\00-\001\002\008") + (data (i32.const 14492) ",") + (data (i32.const 14504) "\01\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 14540) "L") + (data (i32.const 14552) "\02\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") + (data (i32.const 14620) "<") + (data (i32.const 14632) "\01\00\00\00(\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\80\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") + (data (i32.const 14684) "\9c") + (data (i32.const 14696) "\02\00\00\00~\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") + (data (i32.const 14844) ",") + (data (i32.const 14856) "\01\00\00\00\1c\00\00\000-\00\00\b0,\00\00\b0,\00\00\f0,\00\00\d0,\00\00\10-") + (data (i32.const 14892) ",") + (data (i32.const 14904) "\02\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") + (data (i32.const 14940) "\1c") + (data (i32.const 14952) "\02\00\00\00\02\00\00\002") + (data (i32.const 14972) "\1c") + (data (i32.const 14984) "\02\00\00\00\02\00\00\004") + (data (i32.const 15004) ",") + (data (i32.const 15016) "\01\00\00\00\10\00\00\00\005\00\00p:\00\00\00\00\00\00\90:") (data (i32.const 15052) "\1c") - (data (i32.const 15064) "\01\00\00\00\08\00\00\00\03\00\00\00\04") - (data (i32.const 15084) ",") - (data (i32.const 15096) "\02\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") - (data (i32.const 15132) "\1c") - (data (i32.const 15144) "\01\00\00\00\02\00\00\00\01\02") - (data (i32.const 15164) "\1c") - (data (i32.const 15176) "\01\00\00\00\02\00\00\00\03\04") + (data (i32.const 15064) "\02\00\00\00\0c\00\00\001\00,\002\00,\00,\004") + (data (i32.const 15084) "\1c") + (data (i32.const 15096) "\01\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 15116) "\1c") + (data (i32.const 15128) "\01\00\00\00\08\00\00\00\03\00\00\00\04") + (data (i32.const 15148) ",") + (data (i32.const 15160) "\02\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") (data (i32.const 15196) "\1c") - (data (i32.const 15208) "\01\00\00\00\04\00\00\00\01") + (data (i32.const 15208) "\01\00\00\00\02\00\00\00\01\02") (data (i32.const 15228) "\1c") - (data (i32.const 15240) "\01\00\00\00\04") + (data (i32.const 15240) "\01\00\00\00\02\00\00\00\03\04") (data (i32.const 15260) "\1c") - (data (i32.const 15272) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 15272) "\01\00\00\00\04\00\00\00\01") (data (i32.const 15292) "\1c") - (data (i32.const 15304) "\01\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06") + (data (i32.const 15304) "\01\00\00\00\04") (data (i32.const 15324) "\1c") - (data (i32.const 15336) "\01\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 15336) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") (data (i32.const 15356) "\1c") - (data (i32.const 15368) "\02\00\00\00\06\00\00\00o\00n\00e") + (data (i32.const 15368) "\01\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06") (data (i32.const 15388) "\1c") - (data (i32.const 15400) "\01\00\00\00\04\00\00\00\10<") + (data (i32.const 15400) "\01\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t") (data (i32.const 15420) "\1c") - (data (i32.const 15432) "\02\00\00\00\06\00\00\00t\00w\00o") + (data (i32.const 15432) "\02\00\00\00\06\00\00\00o\00n\00e") (data (i32.const 15452) "\1c") - (data (i32.const 15464) "\02\00\00\00\n\00\00\00t\00h\00r\00e\00e") + (data (i32.const 15464) "\01\00\00\00\04\00\00\00P<") (data (i32.const 15484) "\1c") - (data (i32.const 15496) "\01\00\00\00\0c\00\00\00P<\00\00\00\00\00\00p<") + (data (i32.const 15496) "\02\00\00\00\06\00\00\00t\00w\00o") (data (i32.const 15516) "\1c") - (data (i32.const 15528) "\02\00\00\00\08\00\00\00f\00o\00u\00r") + (data (i32.const 15528) "\02\00\00\00\n\00\00\00t\00h\00r\00e\00e") (data (i32.const 15548) "\1c") - (data (i32.const 15560) "\02\00\00\00\08\00\00\00f\00i\00v\00e") + (data (i32.const 15560) "\01\00\00\00\0c\00\00\00\90<\00\00\00\00\00\00\b0<") (data (i32.const 15580) "\1c") - (data (i32.const 15592) "\02\00\00\00\06\00\00\00s\00i\00x") + (data (i32.const 15592) "\02\00\00\00\08\00\00\00f\00o\00u\00r") (data (i32.const 15612) "\1c") - (data (i32.const 15624) "\01\00\00\00\0c\00\00\00\b0<\00\00\d0<\00\00\f0<") + (data (i32.const 15624) "\02\00\00\00\08\00\00\00f\00i\00v\00e") (data (i32.const 15644) "\1c") - (data (i32.const 15656) "\02\00\00\00\n\00\00\00s\00e\00v\00e\00n") + (data (i32.const 15656) "\02\00\00\00\06\00\00\00s\00i\00x") (data (i32.const 15676) "\1c") - (data (i32.const 15688) "\01\00\00\00\04\00\00\000=") - (data (i32.const 15708) "<") - (data (i32.const 15720) "\01\00\00\00 \00\00\00\10<\00\00P<\00\00\00\00\00\00p<\00\00\b0<\00\00\d0<\00\00\f0<\00\000=") - (data (i32.const 15772) "\1c") - (data (i32.const 15784) "\01") - (data (i32.const 15804) "\1c") - (data (i32.const 15816) "\01") + (data (i32.const 15688) "\01\00\00\00\0c\00\00\00\f0<\00\00\10=\00\000=") + (data (i32.const 15708) "\1c") + (data (i32.const 15720) "\02\00\00\00\n\00\00\00s\00e\00v\00e\00n") + (data (i32.const 15740) "\1c") + (data (i32.const 15752) "\01\00\00\00\04\00\00\00p=") + (data (i32.const 15772) "<") + (data (i32.const 15784) "\01\00\00\00 \00\00\00P<\00\00\90<\00\00\00\00\00\00\b0<\00\00\f0<\00\00\10=\00\000=\00\00p=") (data (i32.const 15836) "\1c") - (data (i32.const 15848) "\01\00\00\00\04\00\00\00\01") + (data (i32.const 15848) "\01") (data (i32.const 15868) "\1c") - (data (i32.const 15880) "\01\00\00\00\04\00\00\00\02") + (data (i32.const 15880) "\01") (data (i32.const 15900) "\1c") - (data (i32.const 15912) ".\00\00\00\08\00\00\00?") - (data (i32.const 15936) "/\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00 \00\00\00A\00\00\00B\00\00\00\02\01\00\00\02\19\00\00\02A\00\00\82\00\00\00\02\1a\00\00\02a") - (data (i32.const 16004) "\02A") - (data (i32.const 16028) " \00\00\00\02A") - (data (i32.const 16056) "\02A\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\02a") - (data (i32.const 16088) "B\00\00\00B\08\00\00\82\08\00\00\02\02\00\00\02\n\00\00\02A\00\00\02A\00\00\02A\00\00\02A") + (data (i32.const 15912) "\01\00\00\00\04\00\00\00\01") + (data (i32.const 15932) "\1c") + (data (i32.const 15944) "\01\00\00\00\04\00\00\00\02") + (data (i32.const 15964) "\1c") + (data (i32.const 15976) ".\00\00\00\08\00\00\00?") + (data (i32.const 16000) "/\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00 \00\00\00A\00\00\00B\00\00\00\02\01\00\00\02\19\00\00\02A\00\00\82\00\00\00\02\1a\00\00\02a") + (data (i32.const 16068) "\02A") + (data (i32.const 16092) " \00\00\00\02A") + (data (i32.const 16120) "\02A\00\00\00\00\00\00 \00\00\00\02A\00\00\00\00\00\00\02a") + (data (i32.const 16152) "B\00\00\00B\08\00\00\82\08\00\00\02\02\00\00\02\n\00\00\02A\00\00\02A\00\00\02A\00\00\02A") (table $0 64 64 funcref) (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|20 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|34 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|34 $start:std/array~anonymous|40 $start:std/array~anonymous|34 $start:std/array~anonymous|34 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|34 $start:std/array~anonymous|40 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|49 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|49 $start:std/array~anonymous|52 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $start:std/array~anonymous|54) (export "memory" (memory $0)) @@ -667,7 +668,7 @@ local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__visit end - i32.const 9968 + i32.const 10032 call $byn-split-outlined-A$~lib/rt/itcms/__visit global.get $std/array/inputStabArr local.tee $0 @@ -691,9 +692,9 @@ call $byn-split-outlined-A$~lib/rt/itcms/__visit i32.const 1152 call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 8080 + i32.const 8144 call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 9136 + i32.const 9200 call $byn-split-outlined-A$~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -768,7 +769,7 @@ i32.load $0 offset=8 i32.eqz local.get $0 - i32.const 48896 + i32.const 48960 i32.lt_u i32.and i32.eqz @@ -817,7 +818,7 @@ i32.const 1 else local.get $1 - i32.const 15936 + i32.const 16000 i32.load $0 i32.gt_u if @@ -831,7 +832,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 15940 + i32.const 16004 i32.add i32.load $0 i32.const 32 @@ -1396,10 +1397,10 @@ if unreachable end - i32.const 48896 + i32.const 48960 i32.const 0 i32.store $0 - i32.const 50464 + i32.const 50528 i32.const 0 i32.store $0 loop $for-loop|0 @@ -1410,7 +1411,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 48896 + i32.const 48960 i32.add i32.const 0 i32.store $0 offset=4 @@ -1428,7 +1429,7 @@ i32.add i32.const 2 i32.shl - i32.const 48896 + i32.const 48960 i32.add i32.const 0 i32.store $0 offset=96 @@ -1446,20 +1447,20 @@ br $for-loop|0 end end - i32.const 48896 - i32.const 50468 + i32.const 48960 + i32.const 50532 memory.size $0 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 48896 + i32.const 48960 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/tlsf/__free (type $i32_=>_none) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 - i32.const 48896 + i32.const 48960 i32.lt_u if return @@ -1589,7 +1590,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 48896 + i32.const 48960 i32.lt_u if local.get $0 @@ -1689,7 +1690,7 @@ unreachable end local.get $0 - i32.const 48896 + i32.const 48960 i32.lt_u if local.get $0 @@ -2377,6 +2378,31 @@ end i32.const 1 ) + (func $~lib/array/Array#fill@varargs (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 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 $2 + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill + ) (func $~lib/array/Array#fill (type $i32_f32_i32_i32_=>_none) (param $0 i32) (param $1 f32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) @@ -2565,6 +2591,31 @@ end i32.const 1 ) + (func $~lib/array/Array#fill@varargs (type $i32_f32_i32_=>_none) (param $0 i32) (param $1 f32) (param $2 i32) + (local $3 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 $2 + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#fill + ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -2905,6 +2956,27 @@ memory.copy $0 $0 local.get $0 ) + (func $~lib/array/Array#copyWithin@varargs (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/array/Array#copyWithin + ) (func $std/array/isArraysEqual (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 @@ -2983,6 +3055,28 @@ local.get $2 i32.store $0 offset=12 ) + (func $~lib/array/Array#slice@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#slice + ) (func $~lib/array/Array#reverse (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -3252,6 +3346,26 @@ i32.add i32.load16_u $0 ) + (func $~lib/array/Array#splice@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + ) (func $~lib/array/Array#__set (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -3523,7 +3637,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 7660 + i32.const 7724 i32.add i64.load32_u $0 local.get $3 @@ -3531,7 +3645,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 7660 + i32.const 7724 i32.add i64.load32_u $0 i64.const 32 @@ -3558,7 +3672,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 7660 + i32.const 7724 i32.add i32.load $0 i32.store $0 @@ -3581,7 +3695,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 7660 + i32.const 7724 i32.add i32.load $0 i32.store $0 @@ -7189,11 +7303,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7379,11 +7493,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7538,11 +7652,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8259,11 +8373,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8295,7 +8409,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $2 br $__inlined_func$~lib/string/String#concat end @@ -8420,7 +8534,7 @@ (local $7 i32) local.get $0 i32.load $0 offset=4 - local.set $4 + local.set $6 local.get $0 i32.load $0 offset=12 local.set $0 @@ -8429,11 +8543,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8446,7 +8560,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $7 i32.const 0 i32.lt_s if @@ -8454,14 +8568,14 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 + local.get $7 i32.eqz if - local.get $4 + local.get $6 i32.load $0 call $~lib/util/number/itoa32 local.set $0 @@ -8481,43 +8595,41 @@ local.tee $5 i32.const 11 i32.add - local.get $3 + local.get $7 i32.mul i32.const 11 i32.add - local.tee $7 + local.tee $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s + local.get $4 + local.get $7 + i32.lt_s if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $4 local.get $6 + local.get $4 i32.const 2 i32.shl i32.add i32.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 + local.set $2 local.get $5 if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add @@ -8526,38 +8638,38 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $2 local.get $5 i32.add - local.set $0 + local.set $2 end - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 + local.set $4 br $for-loop|0 end end - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $3 + local.get $6 + local.get $7 i32.const 2 i32.shl i32.add i32.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 - local.get $7 + local.tee $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -8570,8 +8682,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $0 end local.get $0 ) @@ -8649,7 +8759,7 @@ (local $7 i32) local.get $0 i32.load $0 offset=4 - local.set $4 + local.set $6 local.get $0 i32.load $0 offset=12 local.set $0 @@ -8658,11 +8768,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8675,7 +8785,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $7 i32.const 0 i32.lt_s if @@ -8683,14 +8793,14 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 + local.get $7 i32.eqz if - local.get $4 + local.get $6 i32.load $0 call $~lib/util/number/utoa32 local.set $0 @@ -8710,43 +8820,41 @@ local.tee $5 i32.const 10 i32.add - local.get $3 + local.get $7 i32.mul i32.const 10 i32.add - local.tee $7 + local.tee $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s + local.get $4 + local.get $7 + i32.lt_s if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $4 local.get $6 + local.get $4 i32.const 2 i32.shl i32.add i32.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 + local.set $2 local.get $5 if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add @@ -8755,38 +8863,38 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $2 local.get $5 i32.add - local.set $0 + local.set $2 end - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 + local.set $4 br $for-loop|0 end end - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $3 + local.get $6 + local.get $7 i32.const 2 i32.shl i32.add i32.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 - local.get $7 + local.tee $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -8799,8 +8907,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $0 end local.get $0 ) @@ -9045,7 +9151,7 @@ local.get $7 i32.const 2 i32.shl - i32.const 13328 + i32.const 13392 i32.add i64.load32_u $0 local.get $10 @@ -9169,7 +9275,7 @@ i32.sub i32.const 2 i32.shl - i32.const 13328 + i32.const 13392 i32.add i64.load32_u $0 i64.mul @@ -9677,14 +9783,14 @@ i32.sub global.set $~lib/util/number/_K local.get $9 - i32.const 12456 + i32.const 12520 i32.add i64.load $0 global.set $~lib/util/number/_frc_pow local.get $8 i32.const 1 i32.shl - i32.const 13152 + i32.const 13216 i32.add i32.load16_s $0 global.set $~lib/util/number/_exp_pow @@ -9909,15 +10015,15 @@ ) (func $~lib/array/Array#join (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) - (local $2 f64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 f64) local.get $0 i32.load $0 offset=4 - local.set $4 + local.set $5 local.get $0 i32.load $0 offset=12 local.set $0 @@ -9927,7 +10033,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9937,7 +10043,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $6 i32.const 0 i32.lt_s if @@ -9945,29 +10051,29 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end - local.get $3 + local.get $6 i32.eqz if - local.get $4 + local.get $5 f64.load $0 - local.set $2 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 block $__inlined_func$~lib/util/number/dtoa - local.get $2 + local.get $7 f64.const 0 f64.eq if @@ -9975,25 +10081,25 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 12256 + i32.const 12320 local.set $0 br $__inlined_func$~lib/util/number/dtoa end - local.get $2 - local.get $2 + local.get $7 + local.get $7 f64.sub f64.const 0 f64.ne if - local.get $2 - local.get $2 + local.get $7 + local.get $7 f64.ne if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 12288 + i32.const 12352 local.set $0 br $__inlined_func$~lib/util/number/dtoa end @@ -10001,17 +10107,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 12320 - i32.const 12368 - local.get $2 + i32.const 12384 + i32.const 12432 + local.get $7 f64.const 0 f64.lt select local.set $0 br $__inlined_func$~lib/util/number/dtoa end - i32.const 12400 - local.get $2 + i32.const 12464 + local.get $7 call $~lib/util/number/dtoa_core i32.const 1 i32.shl @@ -10023,7 +10129,7 @@ local.tee $0 i32.store $0 local.get $0 - i32.const 12400 + i32.const 12464 local.get $1 memory.copy $0 $0 global.get $~lib/memory/__stack_pointer @@ -10038,90 +10144,88 @@ br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer - i32.const 12220 + i32.const 12284 i32.load $0 i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 28 i32.add - local.get $3 + local.get $6 i32.mul i32.const 28 i32.add - local.tee $7 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 local.get $3 local.get $6 - i32.gt_s + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $4 - local.get $6 + local.get $5 + local.get $3 i32.const 3 i32.shl i32.add f64.load $0 call $~lib/util/number/dtoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $5 + local.set $1 + local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - i32.const 12224 - local.get $5 + i32.const 12288 + local.get $4 i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $4 - local.get $3 + local.get $5 + local.get $6 i32.const 3 i32.shl i32.add f64.load $0 call $~lib/util/number/dtoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -10134,19 +10238,236 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable ) + (func $~lib/array/Array<~lib/string/String|null>#join (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load $0 offset=4 + local.set $4 + local.get $0 + i32.load $0 offset=12 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + block $__inlined_func$~lib/util/string/joinStringArray + local.get $6 + i32.const 1 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $4 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $0 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 11568 + local.get $1 + select + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $7 + i32.store $0 offset=4 + local.get $7 + if + local.get $2 + local.get $7 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $2 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $1 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + local.get $5 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 offset=8 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $7 + i32.store $0 offset=4 + local.get $7 + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $7 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 + i32.shl + memory.copy $0 $0 + local.get $3 + local.get $7 + i32.add + local.set $3 + end + local.get $6 + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $6 + i32.const 1 + i32.shl + memory.copy $0 $0 + local.get $3 + local.get $6 + i32.add + local.set $3 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $1 + i32.store $0 offset=4 + local.get $1 + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const -2 + i32.and + memory.copy $0 $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) (func $~lib/array/Array#join (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -10164,11 +10485,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10193,7 +10514,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray end @@ -10210,19 +10531,19 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 13568 - i32.const 11504 + i32.const 13632 + i32.const 11568 local.get $1 select local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray end - i32.const 11504 + i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 i32.store $0 offset=4 - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u @@ -10245,11 +10566,11 @@ if global.get $~lib/memory/__stack_pointer local.tee $5 - i32.const 13568 + i32.const 13632 i32.store $0 offset=8 local.get $5 local.get $0 - i32.const 13568 + i32.const 13632 call $~lib/string/String.__concat local.tee $0 i32.store $0 offset=4 @@ -10258,7 +10579,7 @@ if global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 11792 + i32.const 11856 call $~lib/string/String.__concat local.tee $0 i32.store $0 offset=4 @@ -10283,11 +10604,11 @@ if global.get $~lib/memory/__stack_pointer local.tee $1 - i32.const 13568 + i32.const 13632 i32.store $0 offset=8 local.get $1 local.get $0 - i32.const 13568 + i32.const 13632 call $~lib/string/String.__concat local.tee $0 i32.store $0 offset=4 @@ -10600,7 +10921,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 7660 + i32.const 7724 i32.add i64.load32_u $0 local.get $4 @@ -10608,7 +10929,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 7660 + i32.const 7724 i32.add i64.load32_u $0 i64.const 32 @@ -10631,7 +10952,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 7660 + i32.const 7724 i32.add i64.load32_u $0 local.get $3 @@ -10639,7 +10960,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 7660 + i32.const 7724 i32.add i64.load32_u $0 i64.const 32 @@ -10789,15 +11110,15 @@ ) (func $~lib/array/Array#join (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 i64) local.get $0 i32.load $0 offset=4 - local.set $7 + local.set $2 local.get $0 i32.load $0 offset=12 local.set $0 @@ -10807,7 +11128,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10817,7 +11138,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $3 i32.const 0 i32.lt_s if @@ -10825,92 +11146,92 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $6 + local.get $3 i32.eqz if block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $7 + local.get $2 i64.load $0 - local.set $2 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $2 + local.get $7 i64.eqz if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7648 + i32.const 7712 br $__inlined_func$~lib/util/number/utoa64 end - local.get $2 + local.get $7 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.wrap_i64 - local.tee $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 2 @@ -10918,56 +11239,56 @@ local.tee $0 i32.store $0 local.get $0 + local.get $2 local.get $1 - local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $7 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $7 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $2 + local.get $7 i64.const 10000000000 i64.ge_u i32.add else - local.get $2 + local.get $7 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $2 + local.get $7 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $2 + local.get $7 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $7 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $2 + local.get $7 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $2 + local.get $7 i64.const 1000000000000000000 i64.ge_u i32.add @@ -10981,7 +11302,7 @@ local.tee $0 i32.store $0 local.get $0 - local.get $2 + local.get $7 local.get $1 call $~lib/util/number/utoa64_dec_lut end @@ -10999,90 +11320,88 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u - local.tee $3 + local.tee $6 i32.const 20 i32.add - local.get $6 + local.get $3 i32.mul i32.const 20 i32.add - local.tee $5 + local.tee $4 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $3 + local.get $5 + i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $7 - local.get $4 + local.get $2 + local.get $5 i32.const 3 i32.shl i32.add i64.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $3 + local.set $1 + local.get $6 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - i32.const 11792 - local.get $3 + i32.const 11856 + local.get $6 i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 - local.get $3 + local.get $1 + local.get $6 i32.add - local.set $0 + local.set $1 end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end - local.get $5 - local.get $1 + local.get $4 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $7 - local.get $6 + local.get $2 + local.get $3 i32.const 3 i32.shl i32.add i64.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -11095,14 +11414,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11431,11 +11748,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11516,11 +11833,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11531,10 +11848,10 @@ i32.const 0 i32.store $0 local.get $1 - i32.const 11056 + i32.const 11120 i32.store $0 local.get $0 - i32.const 11056 + i32.const 11120 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 4 @@ -11551,11 +11868,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11752,7 +12069,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11774,7 +12091,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11851,8 +12168,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -11874,7 +12191,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11886,7 +12203,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -11897,18 +12214,18 @@ i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store $0 - local.get $8 + local.get $7 i32.const 0 i32.store $0 - local.get $8 + local.get $7 i32.const 0 i32.store $0 offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store $0 offset=8 - local.get $8 + local.get $7 i32.const 0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -11917,23 +12234,23 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store $0 offset=4 - local.get $8 + local.get $7 local.get $1 i32.store $0 local.get $1 if - local.get $8 + local.get $7 local.get $1 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $8 + local.get $7 local.get $1 i32.store $0 offset=4 - local.get $8 + local.get $7 i32.const 1600 i32.store $0 offset=8 - local.get $8 + local.get $7 i32.const 400 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer @@ -11941,7 +12258,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $8 + local.get $7 i32.store $0 loop $for-loop|0 local.get $2 @@ -11958,41 +12275,39 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - i32.const 11504 - local.set $1 - local.get $0 - i32.const 11504 + i32.const 11568 + local.set $0 + local.get $1 + i32.const 11568 i32.store $0 i32.const 0 local.set $3 - loop $for-loop|03 + loop $for-loop|02 local.get $3 local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $0 - local.set $7 - local.get $0 - i32.const 9968 + local.tee $8 + i32.const 10032 i32.store $0 offset=4 call $~lib/math/NativeMath.random local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 9968 + i32.const 10032 i32.store $0 offset=8 local.get $6 - i32.const 9964 + i32.const 10028 i32.load $0 i32.const 1 i32.shr_u @@ -12006,7 +12321,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12014,7 +12329,7 @@ i32.store $0 block $__inlined_func$~lib/string/String#charAt local.get $4 - i32.const 9964 + i32.const 10028 i32.load $0 i32.const 1 i32.shr_u @@ -12024,21 +12339,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 br $__inlined_func$~lib/string/String#charAt end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store $0 - local.get $0 + local.get $1 local.get $4 i32.const 1 i32.shl - i32.const 9968 + i32.const 10032 i32.add i32.load16_u $0 i32.store16 $0 @@ -12048,19 +12363,19 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=4 - local.get $7 local.get $1 + i32.store $0 offset=4 + local.get $8 local.get $0 + local.get $1 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store $0 local.get $3 i32.const 1 i32.add local.set $3 - br $for-loop|03 + br $for-loop|02 end end global.get $~lib/memory/__stack_pointer @@ -12068,11 +12383,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $8 + local.get $7 local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#__set local.get $2 i32.const 1 @@ -12085,11 +12400,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12102,11 +12417,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12117,10 +12432,10 @@ i32.const 0 i32.store $0 local.get $1 - i32.const 11792 + i32.const 11856 i32.store $0 local.get $0 - i32.const 11792 + i32.const 11856 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -12142,28 +12457,28 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store $0 - local.get $1 - i32.const 11792 + local.get $2 + i32.const 11856 i32.store $0 local.get $0 i32.load $0 offset=4 - local.set $4 + local.set $3 local.get $0 i32.load $0 offset=12 local.set $0 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12173,7 +12488,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if @@ -12181,14 +12496,14 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 + local.get $4 i32.eqz if - local.get $4 + local.get $3 i32.load8_s $0 call $~lib/util/number/itoa32 local.set $0 @@ -12199,71 +12514,69 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u - local.tee $5 + local.tee $2 i32.const 11 i32.add - local.get $3 + local.get $4 i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $5 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s + local.get $4 + local.get $6 + i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $4 + local.get $3 + local.get $6 i32.add i32.load8_s $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $5 + local.set $1 + local.get $2 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - i32.const 11792 - local.get $5 + i32.const 11856 + local.get $2 i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 - local.get $5 + local.get $1 + local.get $2 i32.add - local.set $0 + local.set $1 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $5 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -12272,13 +12585,13 @@ i32.add i32.load8_s $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -12291,8 +12604,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12301,8 +12612,8 @@ local.get $0 return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12315,11 +12626,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12330,14 +12641,11 @@ i32.const 0 i32.store $0 local.get $1 - i32.const 11792 + i32.const 11856 i32.store $0 local.get $0 - i32.load $0 offset=4 - local.get $0 - i32.load $0 offset=12 - i32.const 11792 - call $~lib/util/string/joinStringArray + i32.const 11856 + call $~lib/array/Array<~lib/string/String|null>#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12358,28 +12666,28 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store $0 - local.get $1 - i32.const 11792 + local.get $2 + i32.const 11856 i32.store $0 local.get $0 i32.load $0 offset=4 - local.set $4 + local.set $3 local.get $0 i32.load $0 offset=12 local.set $0 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12389,7 +12697,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if @@ -12397,14 +12705,14 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 + local.get $4 i32.eqz if - local.get $4 + local.get $3 i32.load8_u $0 call $~lib/util/number/utoa32 local.set $0 @@ -12415,71 +12723,69 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u - local.tee $5 + local.tee $2 i32.const 10 i32.add - local.get $3 + local.get $4 i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $5 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s + local.get $4 + local.get $6 + i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $4 + local.get $3 + local.get $6 i32.add i32.load8_u $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $5 + local.set $1 + local.get $2 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - i32.const 11792 - local.get $5 + i32.const 11856 + local.get $2 i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 - local.get $5 + local.get $1 + local.get $2 i32.add - local.set $0 + local.set $1 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $5 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -12488,13 +12794,13 @@ i32.add i32.load8_u $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -12507,8 +12813,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12517,8 +12821,8 @@ local.get $0 return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12531,11 +12835,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12546,10 +12850,10 @@ i32.const 0 i32.store $0 local.get $1 - i32.const 11792 + i32.const 11856 i32.store $0 local.get $0 - i32.const 11792 + i32.const 11856 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -12571,7 +12875,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12579,7 +12883,7 @@ i32.const 0 i32.store $0 local.get $2 - i32.const 11792 + i32.const 11856 i32.store $0 local.get $0 i32.load $0 offset=4 @@ -12592,7 +12896,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -12614,7 +12918,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end @@ -12631,7 +12935,7 @@ local.get $0 call $~lib/array/Array#toString else - i32.const 11504 + i32.const 11568 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -12640,12 +12944,12 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - i32.const 11504 + i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 i32.store $0 offset=4 - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u @@ -12685,7 +12989,7 @@ if global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 11792 + i32.const 11856 call $~lib/string/String.__concat local.tee $0 i32.store $0 offset=4 @@ -12735,8 +13039,8 @@ local.get $0 return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -12756,13 +13060,14 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 508 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -12772,7 +13077,7 @@ memory.size $0 i32.const 16 i32.shl - i32.const 48896 + i32.const 48960 i32.sub i32.const 1 i32.shr_u @@ -12815,7 +13120,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -12834,7 +13139,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -12863,20 +13168,20 @@ i32.const 1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 offset=4 local.get $1 - local.get $6 + local.get $8 i32.store $0 - local.get $6 + local.get $8 if local.get $1 - local.get $6 + local.get $8 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $1 - local.get $6 + local.get $8 i32.store $0 offset=4 local.get $1 i32.const 1 @@ -12926,27 +13231,27 @@ i32.const 1 local.get $0 i32.load $0 offset=12 - local.tee $6 - local.get $6 + local.tee $8 + local.get $8 i32.const 1 i32.gt_s select - local.tee $7 + local.tee $9 i32.const 3 - local.get $6 - local.get $6 + local.get $8 + local.get $8 i32.const 3 i32.gt_s select - local.tee $6 + local.tee $8 i32.lt_s if local.get $1 - local.get $7 + local.get $9 i32.add i32.const 1 - local.get $6 - local.get $7 + local.get $8 + local.get $9 i32.sub memory.fill $0 end @@ -12971,28 +13276,30 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength local.get $0 i32.load $0 offset=4 local.set $1 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.const 0 - local.get $6 + local.get $8 i32.const 0 i32.le_s select - local.set $7 - local.get $6 - local.get $7 - i32.gt_s + local.tee $9 + local.get $8 + local.tee $8 + i32.lt_s if local.get $1 - local.get $7 + local.get $9 i32.add i32.const 0 - local.get $6 - local.get $7 + local.get $8 + local.get $9 i32.sub memory.fill $0 end @@ -13022,25 +13329,25 @@ local.set $1 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.const 0 - local.get $6 + local.get $8 i32.const 0 i32.le_s select - local.tee $7 - local.get $6 + local.tee $9 + local.get $8 i32.const 3 i32.sub - local.tee $6 + local.tee $8 i32.lt_s if local.get $1 - local.get $7 + local.get $9 i32.add i32.const 1 - local.get $6 - local.get $7 + local.get $8 + local.get $9 i32.sub memory.fill $0 end @@ -13065,24 +13372,27 @@ call $~lib/builtins/abort unreachable end + i32.const 2 + global.set $~argumentsLength local.get $0 i32.load $0 offset=4 local.set $1 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.const 2 i32.sub - local.tee $7 - local.get $6 + local.tee $9 + local.get $8 + local.tee $8 i32.lt_s if local.get $1 - local.get $7 + local.get $9 i32.add i32.const 2 - local.get $6 - local.get $7 + local.get $8 + local.get $9 i32.sub memory.fill $0 end @@ -13113,27 +13423,27 @@ i32.const 1 local.get $0 i32.load $0 offset=12 - local.tee $6 - local.get $6 + local.tee $8 + local.get $8 i32.const 1 i32.gt_s select - local.tee $7 - local.get $6 + local.tee $9 + local.get $8 i32.const 0 - local.get $6 + local.get $8 i32.const 0 i32.le_s select - local.tee $6 + local.tee $8 i32.lt_s if local.get $1 - local.get $7 + local.get $9 i32.add i32.const 0 - local.get $6 - local.get $7 + local.get $8 + local.get $9 i32.sub memory.fill $0 end @@ -13158,28 +13468,30 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength local.get $0 i32.load $0 offset=4 local.set $1 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.const 0 - local.get $6 + local.get $8 i32.const 0 i32.le_s select - local.set $7 - local.get $6 - local.get $7 - i32.gt_s + local.tee $9 + local.get $8 + local.tee $8 + i32.lt_s if local.get $1 - local.get $7 + local.get $9 i32.add i32.const -1 - local.get $6 - local.get $7 + local.get $8 + local.get $9 i32.sub memory.fill $0 end @@ -13238,11 +13550,12 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 0 i32.const 0 - i32.const 2147483647 - call $~lib/array/Array#fill + call $~lib/array/Array#fill@varargs i32.const 5 i32.const 2 i32.const 8 @@ -13290,11 +13603,12 @@ call $~lib/builtins/abort unreachable end + i32.const 2 + global.set $~argumentsLength local.get $0 i32.const 2 i32.const -2 - i32.const 2147483647 - call $~lib/array/Array#fill + call $~lib/array/Array#fill@varargs i32.const 5 i32.const 2 i32.const 8 @@ -13342,11 +13656,12 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -1 i32.const 0 - i32.const 2147483647 - call $~lib/array/Array#fill + call $~lib/array/Array#fill@varargs i32.const 5 i32.const 2 i32.const 8 @@ -13402,11 +13717,12 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength local.get $0 f32.const 0 i32.const 0 - i32.const 2147483647 - call $~lib/array/Array#fill + call $~lib/array/Array#fill@varargs i32.const 5 i32.const 2 i32.const 9 @@ -13454,11 +13770,12 @@ call $~lib/builtins/abort unreachable end + i32.const 2 + global.set $~argumentsLength local.get $0 f32.const 2 i32.const -2 - i32.const 2147483647 - call $~lib/array/Array#fill + call $~lib/array/Array#fill@varargs i32.const 5 i32.const 2 i32.const 9 @@ -13506,11 +13823,12 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength local.get $0 f32.const -1 i32.const 0 - i32.const 2147483647 - call $~lib/array/Array#fill + call $~lib/array/Array#fill@varargs i32.const 5 i32.const 2 i32.const 9 @@ -13532,11 +13850,12 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength local.get $0 f32.const -0 i32.const 0 - i32.const 2147483647 - call $~lib/array/Array#fill + call $~lib/array/Array#fill@varargs i32.const 5 i32.const 2 i32.const 9 @@ -14029,9 +14348,9 @@ i32.store $0 offset=40 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $6 + local.tee $8 i32.store $0 - local.get $6 + local.get $8 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14045,9 +14364,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $6 + local.tee $8 i32.store $0 - local.get $6 + local.get $8 i32.load $0 offset=12 i32.const 3 i32.ne @@ -14076,19 +14395,19 @@ i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.set $6 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store $0 offset=8 local.get $1 - local.get $6 + local.get $8 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $6 + local.tee $8 i32.store $0 - local.get $6 + local.get $8 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14148,19 +14467,19 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $6 + local.tee $8 i32.store $0 local.get $1 - local.get $6 + local.get $8 local.get $0 call $~lib/array/Array#concat local.tee $1 i32.store $0 offset=40 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $6 + local.tee $8 i32.store $0 - local.get $6 + local.get $8 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14297,11 +14616,11 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $6 + local.tee $8 i32.store $0 offset=8 local.get $1 local.get $0 - local.get $6 + local.get $8 call $~lib/array/Array#concat local.tee $1 i32.store $0 offset=40 @@ -14335,11 +14654,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength local.get $0 i32.const 0 i32.const 3 - i32.const 2147483647 - call $~lib/array/Array#copyWithin + call $~lib/array/Array#copyWithin@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14374,11 +14694,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength local.get $0 i32.const 1 i32.const 3 - i32.const 2147483647 - call $~lib/array/Array#copyWithin + call $~lib/array/Array#copyWithin@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14413,11 +14734,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength local.get $0 i32.const 1 i32.const 2 - i32.const 2147483647 - call $~lib/array/Array#copyWithin + call $~lib/array/Array#copyWithin@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14452,11 +14774,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength local.get $0 i32.const 2 i32.const 2 - i32.const 2147483647 - call $~lib/array/Array#copyWithin + call $~lib/array/Array#copyWithin@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14608,11 +14931,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength local.get $0 i32.const 0 i32.const -2 - i32.const 2147483647 - call $~lib/array/Array#copyWithin + call $~lib/array/Array#copyWithin@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14764,11 +15088,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength local.get $0 i32.const -4 i32.const -3 - i32.const 2147483647 - call $~lib/array/Array#copyWithin + call $~lib/array/Array#copyWithin@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15045,11 +15370,11 @@ end local.get $0 i32.load $0 offset=4 - local.tee $6 + local.tee $8 i32.load $0 - local.set $7 - local.get $6 - local.get $6 + local.set $9 + local.get $8 + local.get $8 i32.const 4 i32.add local.get $1 @@ -15058,17 +15383,17 @@ local.tee $1 i32.const 2 i32.shl - local.tee $8 + local.tee $10 memory.copy $0 $0 - local.get $6 local.get $8 + local.get $10 i32.add i32.const 0 i32.store $0 local.get $0 local.get $1 i32.store $0 offset=12 - local.get $7 + local.get $9 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -15290,11 +15615,12 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=52 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 - i32.const 2147483647 - call $~lib/array/Array#slice + call $~lib/array/Array#slice@varargs local.tee $1 i32.store $0 offset=56 i32.const 3 @@ -15302,12 +15628,12 @@ i32.const 4 i32.const 4000 call $~lib/rt/__newArray - local.set $6 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store $0 offset=8 local.get $1 - local.get $6 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15331,12 +15657,12 @@ i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $6 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store $0 offset=8 local.get $1 - local.get $6 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15360,12 +15686,12 @@ i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $6 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store $0 offset=8 local.get $1 - local.get $6 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15377,11 +15703,12 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $0 i32.const 0 - i32.const 2147483647 - call $~lib/array/Array#slice + call $~lib/array/Array#slice@varargs local.tee $1 i32.store $0 offset=56 local.get $1 @@ -15397,11 +15724,12 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $0 i32.const -2 - i32.const 2147483647 - call $~lib/array/Array#slice + call $~lib/array/Array#slice@varargs local.tee $1 i32.store $0 offset=56 i32.const 2 @@ -15409,12 +15737,12 @@ i32.const 4 i32.const 4112 call $~lib/rt/__newArray - local.set $6 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store $0 offset=8 local.get $1 - local.get $6 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15438,12 +15766,12 @@ i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $6 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store $0 offset=8 local.get $1 - local.get $6 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15467,12 +15795,12 @@ i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $6 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store $0 offset=8 local.get $1 - local.get $6 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15502,10 +15830,11 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 10 - i32.const 2147483647 - call $~lib/array/Array#slice + call $~lib/array/Array#slice@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15536,14 +15865,14 @@ local.get $0 i32.const 1 i32.shr_u - local.set $6 + local.set $8 local.get $0 i32.const 1 i32.sub local.set $0 loop $while-continue|0 local.get $2 - local.get $6 + local.get $8 i32.lt_u if local.get $1 @@ -15551,10 +15880,10 @@ i32.const 2 i32.shl i32.add - local.tee $7 + local.tee $9 i32.load $0 - local.set $8 - local.get $7 + local.set $10 + local.get $9 local.get $1 local.get $0 local.get $2 @@ -15562,11 +15891,11 @@ i32.const 2 i32.shl i32.add - local.tee $7 + local.tee $9 i32.load $0 i32.store $0 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.store $0 local.get $2 i32.const 1 @@ -15990,9 +16319,9 @@ block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or @@ -16000,9 +16329,9 @@ local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|06 + loop $while-continue|083 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16019,7 +16348,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|06 + br $while-continue|083 end end i32.const -1 @@ -16044,22 +16373,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf7 + block $__inlined_func$~lib/array/Array#indexOf84 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf7 + br_if $__inlined_func$~lib/array/Array#indexOf84 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|08 + loop $while-continue|088 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16071,12 +16400,12 @@ i32.load $0 i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf7 + br_if $__inlined_func$~lib/array/Array#indexOf84 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|08 + br $while-continue|088 end end i32.const -1 @@ -16103,22 +16432,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf9 + block $__inlined_func$~lib/array/Array#indexOf89 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf9 + br_if $__inlined_func$~lib/array/Array#indexOf89 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|010 + loop $while-continue|093 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16130,12 +16459,12 @@ i32.load $0 i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf9 + br_if $__inlined_func$~lib/array/Array#indexOf89 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|010 + br $while-continue|093 end end i32.const -1 @@ -16162,22 +16491,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf11 + block $__inlined_func$~lib/array/Array#indexOf94 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 100 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf11 + br_if $__inlined_func$~lib/array/Array#indexOf94 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|012 + loop $while-continue|098 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16189,12 +16518,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf11 + br_if $__inlined_func$~lib/array/Array#indexOf94 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|012 + br $while-continue|098 end end i32.const -1 @@ -16219,7 +16548,7 @@ i32.store $0 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf13 + block $__inlined_func$~lib/array/Array#indexOf99 local.get $0 i32.load $0 offset=12 local.tee $2 @@ -16228,7 +16557,7 @@ i32.const -100 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf13 + br_if $__inlined_func$~lib/array/Array#indexOf99 local.get $2 i32.const 100 i32.sub @@ -16242,7 +16571,7 @@ local.get $0 i32.load $0 offset=4 local.set $0 - loop $while-continue|014 + loop $while-continue|0103 local.get $1 local.get $2 i32.lt_s @@ -16255,12 +16584,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf13 + br_if $__inlined_func$~lib/array/Array#indexOf99 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|014 + br $while-continue|0103 end end i32.const -1 @@ -16285,7 +16614,7 @@ i32.store $0 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf15 + block $__inlined_func$~lib/array/Array#indexOf104 local.get $0 i32.load $0 offset=12 local.tee $2 @@ -16294,7 +16623,7 @@ i32.const -2 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf15 + br_if $__inlined_func$~lib/array/Array#indexOf104 local.get $2 i32.const 2 i32.sub @@ -16308,7 +16637,7 @@ local.get $0 i32.load $0 offset=4 local.set $0 - loop $while-continue|016 + loop $while-continue|0108 local.get $1 local.get $2 i32.lt_s @@ -16321,12 +16650,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf15 + br_if $__inlined_func$~lib/array/Array#indexOf104 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|016 + br $while-continue|0108 end end i32.const -1 @@ -16351,7 +16680,7 @@ i32.store $0 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf17 + block $__inlined_func$~lib/array/Array#indexOf109 local.get $0 i32.load $0 offset=12 local.tee $2 @@ -16360,7 +16689,7 @@ i32.const -4 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf17 + br_if $__inlined_func$~lib/array/Array#indexOf109 local.get $2 i32.const 4 i32.sub @@ -16374,7 +16703,7 @@ local.get $0 i32.load $0 offset=4 local.set $0 - loop $while-continue|018 + loop $while-continue|0113 local.get $1 local.get $2 i32.lt_s @@ -16387,12 +16716,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf17 + br_if $__inlined_func$~lib/array/Array#indexOf109 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|018 + br $while-continue|0113 end end i32.const -1 @@ -16419,22 +16748,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf19 + block $__inlined_func$~lib/array/Array#indexOf114 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf19 + br_if $__inlined_func$~lib/array/Array#indexOf114 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|020 + loop $while-continue|0118 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16446,12 +16775,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf19 + br_if $__inlined_func$~lib/array/Array#indexOf114 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|020 + br $while-continue|0118 end end i32.const -1 @@ -16478,22 +16807,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf21 + block $__inlined_func$~lib/array/Array#indexOf119 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 1 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf21 + br_if $__inlined_func$~lib/array/Array#indexOf119 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|022 + loop $while-continue|0123 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16505,12 +16834,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf21 + br_if $__inlined_func$~lib/array/Array#indexOf119 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|022 + br $while-continue|0123 end end i32.const -1 @@ -16537,22 +16866,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf23 + block $__inlined_func$~lib/array/Array#indexOf124 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 2 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf23 + br_if $__inlined_func$~lib/array/Array#indexOf124 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|024 + loop $while-continue|0128 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16564,12 +16893,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf23 + br_if $__inlined_func$~lib/array/Array#indexOf124 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|024 + br $while-continue|0128 end end i32.const -1 @@ -16604,9 +16933,9 @@ block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or @@ -16614,9 +16943,9 @@ local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|085 + loop $while-continue|0132 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16633,7 +16962,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|085 + br $while-continue|0132 end end i32.const -1 @@ -16666,9 +16995,9 @@ block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or @@ -16676,9 +17005,9 @@ local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|089 + loop $while-continue|0136 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -16695,7 +17024,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|089 + br $while-continue|0136 end end i32.const -1 @@ -16744,7 +17073,7 @@ local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|025 + loop $while-continue|02 local.get $0 i32.const 0 i32.ge_s @@ -16762,7 +17091,7 @@ i32.const 1 i32.sub local.set $0 - br $while-continue|025 + br $while-continue|02 end end i32.const -1 @@ -16783,12 +17112,12 @@ global.set $~argumentsLength i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf30 + block $__inlined_func$~lib/array/Array#lastIndexOf7 local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf30 + br_if $__inlined_func$~lib/array/Array#lastIndexOf7 local.get $2 local.get $2 i32.add @@ -16803,7 +17132,7 @@ local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|031 + loop $while-continue|08 local.get $0 i32.const 0 i32.ge_s @@ -16816,12 +17145,12 @@ i32.load $0 i32.const 7 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf30 + br_if $__inlined_func$~lib/array/Array#lastIndexOf7 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|031 + br $while-continue|08 end end i32.const -1 @@ -16840,12 +17169,12 @@ end i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf32 + block $__inlined_func$~lib/array/Array#lastIndexOf9 local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf32 + br_if $__inlined_func$~lib/array/Array#lastIndexOf9 i32.const 3 local.get $2 i32.const 1 @@ -16858,7 +17187,7 @@ local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|093 + loop $while-continue|0140 local.get $0 i32.const 0 i32.ge_s @@ -16871,12 +17200,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf32 + br_if $__inlined_func$~lib/array/Array#lastIndexOf9 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|093 + br $while-continue|0140 end end i32.const -1 @@ -16895,12 +17224,12 @@ end i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf94 + block $__inlined_func$~lib/array/Array#lastIndexOf141 local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf94 + br_if $__inlined_func$~lib/array/Array#lastIndexOf141 i32.const 2 local.get $2 i32.const 1 @@ -16913,7 +17242,7 @@ local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|098 + loop $while-continue|0145 local.get $0 i32.const 0 i32.ge_s @@ -16926,12 +17255,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf94 + br_if $__inlined_func$~lib/array/Array#lastIndexOf141 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|098 + br $while-continue|0145 end end i32.const -1 @@ -16948,12 +17277,12 @@ end i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf99 + block $__inlined_func$~lib/array/Array#lastIndexOf146 local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf99 + br_if $__inlined_func$~lib/array/Array#lastIndexOf146 local.get $2 i32.const 2 i32.sub @@ -16961,7 +17290,7 @@ local.get $1 i32.load $0 offset=4 local.set $2 - loop $while-continue|0103 + loop $while-continue|0150 local.get $0 i32.const 0 i32.ge_s @@ -16974,12 +17303,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf99 + br_if $__inlined_func$~lib/array/Array#lastIndexOf146 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|0103 + br $while-continue|0150 end end i32.const -1 @@ -16996,12 +17325,12 @@ end i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf104 + block $__inlined_func$~lib/array/Array#lastIndexOf151 local.get $1 i32.load $0 offset=12 local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf104 + br_if $__inlined_func$~lib/array/Array#lastIndexOf151 local.get $2 i32.const 1 i32.sub @@ -17009,7 +17338,7 @@ local.get $1 i32.load $0 offset=4 local.set $1 - loop $while-continue|0108 + loop $while-continue|0155 local.get $0 i32.const 0 i32.ge_s @@ -17022,12 +17351,12 @@ i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf104 + br_if $__inlined_func$~lib/array/Array#lastIndexOf151 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|0108 + br $while-continue|0155 end end i32.const -1 @@ -17052,22 +17381,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf33 + block $__inlined_func$~lib/array/Array#indexOf156 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf33 + br_if $__inlined_func$~lib/array/Array#indexOf156 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|034 + loop $while-continue|0160 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -17079,12 +17408,12 @@ i32.load $0 i32.const 44 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf33 + br_if $__inlined_func$~lib/array/Array#indexOf156 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|034 + br $while-continue|0160 end end i32.const -1 @@ -17109,22 +17438,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf35 + block $__inlined_func$~lib/array/Array#indexOf161 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf35 + br_if $__inlined_func$~lib/array/Array#indexOf161 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|036 + loop $while-continue|0165 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -17136,12 +17465,12 @@ i32.load $0 i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf35 + br_if $__inlined_func$~lib/array/Array#indexOf161 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|036 + br $while-continue|0165 end end i32.const -1 @@ -17166,22 +17495,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf37 + block $__inlined_func$~lib/array/Array#indexOf166 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf37 + br_if $__inlined_func$~lib/array/Array#indexOf166 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|038 + loop $while-continue|0170 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -17193,12 +17522,12 @@ i32.load $0 i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf37 + br_if $__inlined_func$~lib/array/Array#indexOf166 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|038 + br $while-continue|0170 end end i32.const -1 @@ -17223,22 +17552,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf39 + block $__inlined_func$~lib/array/Array#indexOf171 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 100 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf39 + br_if $__inlined_func$~lib/array/Array#indexOf171 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|040 + loop $while-continue|0175 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -17250,12 +17579,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf39 + br_if $__inlined_func$~lib/array/Array#indexOf171 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|040 + br $while-continue|0175 end end i32.const -1 @@ -17278,7 +17607,7 @@ i32.store $0 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf41 + block $__inlined_func$~lib/array/Array#indexOf176 local.get $0 i32.load $0 offset=12 local.tee $2 @@ -17287,7 +17616,7 @@ i32.const -100 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf41 + br_if $__inlined_func$~lib/array/Array#indexOf176 local.get $2 i32.const 100 i32.sub @@ -17301,7 +17630,7 @@ local.get $0 i32.load $0 offset=4 local.set $0 - loop $while-continue|042 + loop $while-continue|0180 local.get $1 local.get $2 i32.lt_s @@ -17314,12 +17643,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf41 + br_if $__inlined_func$~lib/array/Array#indexOf176 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|042 + br $while-continue|0180 end end i32.const -1 @@ -17342,7 +17671,7 @@ i32.store $0 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf43 + block $__inlined_func$~lib/array/Array#indexOf181 local.get $0 i32.load $0 offset=12 local.tee $2 @@ -17351,7 +17680,7 @@ i32.const -2 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf43 + br_if $__inlined_func$~lib/array/Array#indexOf181 local.get $2 i32.const 2 i32.sub @@ -17365,7 +17694,7 @@ local.get $0 i32.load $0 offset=4 local.set $0 - loop $while-continue|044 + loop $while-continue|0185 local.get $1 local.get $2 i32.lt_s @@ -17378,12 +17707,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf43 + br_if $__inlined_func$~lib/array/Array#indexOf181 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|044 + br $while-continue|0185 end end i32.const -1 @@ -17406,7 +17735,7 @@ i32.store $0 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf45 + block $__inlined_func$~lib/array/Array#indexOf186 local.get $0 i32.load $0 offset=12 local.tee $2 @@ -17415,7 +17744,7 @@ i32.const -4 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf45 + br_if $__inlined_func$~lib/array/Array#indexOf186 local.get $2 i32.const 4 i32.sub @@ -17429,7 +17758,7 @@ local.get $0 i32.load $0 offset=4 local.set $0 - loop $while-continue|046 + loop $while-continue|0190 local.get $1 local.get $2 i32.lt_s @@ -17442,12 +17771,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf45 + br_if $__inlined_func$~lib/array/Array#indexOf186 local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|046 + br $while-continue|0190 end end i32.const -1 @@ -17472,22 +17801,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf47 + block $__inlined_func$~lib/array/Array#indexOf191 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 0 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf47 + br_if $__inlined_func$~lib/array/Array#indexOf191 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|048 + loop $while-continue|0195 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -17499,12 +17828,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf47 + br_if $__inlined_func$~lib/array/Array#indexOf191 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|048 + br $while-continue|0195 end end i32.const -1 @@ -17529,22 +17858,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf49 + block $__inlined_func$~lib/array/Array#indexOf196 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 1 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf49 + br_if $__inlined_func$~lib/array/Array#indexOf196 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|050 + loop $while-continue|0200 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -17556,12 +17885,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf49 + br_if $__inlined_func$~lib/array/Array#indexOf196 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|050 + br $while-continue|0200 end end i32.const -1 @@ -17586,22 +17915,22 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf51 + block $__inlined_func$~lib/array/Array#indexOf201 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.eqz - local.get $6 + local.get $8 i32.const 2 i32.le_s i32.or - br_if $__inlined_func$~lib/array/Array#indexOf51 + br_if $__inlined_func$~lib/array/Array#indexOf201 local.get $2 i32.load $0 offset=4 local.set $2 - loop $while-continue|052 + loop $while-continue|0205 local.get $1 - local.get $6 + local.get $8 i32.lt_s if local.get $2 @@ -17613,12 +17942,12 @@ i32.load $0 i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf51 + br_if $__inlined_func$~lib/array/Array#indexOf201 local.get $0 i32.const 1 i32.add local.set $1 - br $while-continue|052 + br $while-continue|0205 end end i32.const -1 @@ -17661,7 +17990,7 @@ local.get $0 i32.load $0 offset=4 local.set $0 - loop $while-continue|0112 + loop $while-continue|0209 local.get $1 local.get $2 i32.lt_s @@ -17682,7 +18011,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|0112 + br $while-continue|0209 end end i32.const 0 @@ -17722,7 +18051,7 @@ local.get $0 i32.load $0 offset=4 local.set $0 - loop $while-continue|0116 + loop $while-continue|0213 local.get $1 local.get $2 i32.lt_s @@ -17743,7 +18072,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|0116 + br $while-continue|0213 end end i32.const 0 @@ -17840,10 +18169,11 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=88 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 0 - i32.const 2147483647 - call $~lib/array/Array#splice + call $~lib/array/Array#splice@varargs local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -17960,10 +18290,11 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=88 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 2 - i32.const 2147483647 - call $~lib/array/Array#splice + call $~lib/array/Array#splice@varargs local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18140,10 +18471,11 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=88 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -1 - i32.const 2147483647 - call $~lib/array/Array#splice + call $~lib/array/Array#splice@varargs local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18200,10 +18532,11 @@ call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=88 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -2 - i32.const 2147483647 - call $~lib/array/Array#splice + call $~lib/array/Array#splice@varargs local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18909,7 +19242,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -18918,17 +19251,17 @@ i32.store $0 local.get $1 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.const 0 - local.get $6 + local.get $8 i32.const 0 i32.le_s select - local.set $7 + local.set $9 local.get $2 i32.const 1 - local.get $6 - local.get $7 + local.get $8 + local.get $9 i32.sub local.tee $2 local.get $2 @@ -18946,44 +19279,44 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $10 i32.store $0 - local.get $8 + local.get $10 i32.load $0 offset=4 local.get $1 i32.load $0 offset=4 - local.tee $9 - local.get $7 + local.tee $11 + local.get $9 i32.const 2 i32.shl i32.add - local.tee $10 + local.tee $12 local.get $2 i32.const 2 i32.shl memory.copy $0 $0 local.get $2 - local.get $7 + local.get $9 i32.add - local.tee $7 - local.get $6 + local.tee $9 + local.get $8 i32.ne if - local.get $10 + local.get $12 + local.get $11 local.get $9 - local.get $7 i32.const 2 i32.shl i32.add - local.get $6 - local.get $7 + local.get $8 + local.get $9 i32.sub i32.const 2 i32.shl memory.copy $0 $0 end local.get $1 - local.get $6 + local.get $8 local.get $2 i32.sub i32.store $0 offset=12 @@ -18992,9 +19325,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $8 + local.get $10 i32.store $0 offset=120 - local.get $8 + local.get $10 i32.load $0 offset=12 i32.const 1 i32.ne @@ -19007,7 +19340,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -19128,7 +19461,7 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 6608 + i32.const 6672 i32.store $0 offset=8 i32.const 0 local.set $1 @@ -19136,14 +19469,14 @@ i32.load $0 offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex - loop $for-loop|0138 + loop $for-loop|0234 local.get $1 local.get $2 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $2 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19155,13 +19488,13 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $0 - i32.const 6608 + i32.const 6672 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex @@ -19169,7 +19502,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0138 + br $for-loop|0234 end end i32.const -1 @@ -19192,22 +19525,22 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 6640 + i32.const 6704 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#findIndex141 - loop $for-loop|0144 + block $__inlined_func$~lib/array/Array#findIndex236 + loop $for-loop|0238 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19219,21 +19552,21 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 6640 + i32.const 6704 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex141 + br_if $__inlined_func$~lib/array/Array#findIndex236 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0144 + br $for-loop|0238 end end i32.const -1 @@ -19258,22 +19591,22 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 6672 + i32.const 6736 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#findIndex148 - loop $for-loop|0151 + block $__inlined_func$~lib/array/Array#findIndex241 + loop $for-loop|0243 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19285,21 +19618,21 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 6672 + i32.const 6736 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex148 + br_if $__inlined_func$~lib/array/Array#findIndex241 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0151 + br $for-loop|0243 end end i32.const -1 @@ -19324,22 +19657,22 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 6704 + i32.const 6768 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#findIndex155 - loop $for-loop|0158 + block $__inlined_func$~lib/array/Array#findIndex246 + loop $for-loop|0248 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19351,21 +19684,21 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 6704 + i32.const 6768 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex155 + br_if $__inlined_func$~lib/array/Array#findIndex246 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0158 + br $for-loop|0248 end end i32.const -1 @@ -19406,22 +19739,22 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 6736 + i32.const 6800 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#findIndex164 - loop $for-loop|0167 + block $__inlined_func$~lib/array/Array#findIndex253 + loop $for-loop|0255 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19433,21 +19766,21 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 6736 + i32.const 6800 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex164 + br_if $__inlined_func$~lib/array/Array#findIndex253 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0167 + br $for-loop|0255 end end i32.const -1 @@ -19499,22 +19832,22 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 6768 + i32.const 6832 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $0 i32.load $0 offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex171 - loop $for-loop|0174 + block $__inlined_func$~lib/array/Array#findIndex258 + loop $for-loop|0260 local.get $1 local.get $2 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $2 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19526,21 +19859,21 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $0 - i32.const 6768 + i32.const 6832 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex171 + br_if $__inlined_func$~lib/array/Array#findIndex258 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0174 + br $for-loop|0260 end end i32.const -1 @@ -19593,12 +19926,12 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 6800 + i32.const 6864 call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=132 global.get $~lib/memory/__stack_pointer - i32.const 6848 + i32.const 6912 i32.store $0 offset=8 local.get $0 i32.load $0 offset=12 @@ -19606,7 +19939,7 @@ i32.sub local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex - loop $for-loop|0182 + loop $for-loop|0266 local.get $1 i32.const 0 i32.ge_s @@ -19624,7 +19957,7 @@ local.get $2 local.get $1 local.get $0 - i32.const 6848 + i32.const 6912 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex @@ -19632,7 +19965,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|0182 + br $for-loop|0266 end end i32.const -1 @@ -19650,15 +19983,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6880 + i32.const 6944 i32.store $0 offset=8 local.get $0 i32.load $0 offset=12 i32.const 1 i32.sub local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex185 - loop $for-loop|0188 + block $__inlined_func$~lib/array/Array#findLastIndex268 + loop $for-loop|0270 local.get $1 i32.const 0 i32.ge_s @@ -19676,15 +20009,15 @@ local.get $2 local.get $1 local.get $0 - i32.const 6880 + i32.const 6944 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex185 + br_if $__inlined_func$~lib/array/Array#findLastIndex268 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0188 + br $for-loop|0270 end end i32.const -1 @@ -19704,15 +20037,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6912 + i32.const 6976 i32.store $0 offset=8 local.get $0 i32.load $0 offset=12 i32.const 1 i32.sub local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex191 - loop $for-loop|0194 + block $__inlined_func$~lib/array/Array#findLastIndex272 + loop $for-loop|0274 local.get $1 i32.const 0 i32.ge_s @@ -19730,15 +20063,15 @@ local.get $2 local.get $1 local.get $0 - i32.const 6912 + i32.const 6976 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex191 + br_if $__inlined_func$~lib/array/Array#findLastIndex272 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0194 + br $for-loop|0274 end end i32.const -1 @@ -19758,15 +20091,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6944 + i32.const 7008 i32.store $0 offset=8 local.get $0 i32.load $0 offset=12 i32.const 1 i32.sub local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex197 - loop $for-loop|0200 + block $__inlined_func$~lib/array/Array#findLastIndex276 + loop $for-loop|0278 local.get $1 i32.const 0 i32.ge_s @@ -19784,15 +20117,15 @@ local.get $2 local.get $1 local.get $0 - i32.const 6944 + i32.const 7008 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex197 + br_if $__inlined_func$~lib/array/Array#findLastIndex276 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|0200 + br $for-loop|0278 end end i32.const -1 @@ -19818,21 +20151,21 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 6976 + i32.const 7040 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0205 + loop $for-loop|0281 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19844,14 +20177,14 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 6976 + i32.const 7040 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz @@ -19861,7 +20194,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0205 + br $for-loop|0281 end end i32.const 1 @@ -19875,28 +20208,28 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#every209 (result i32) + block $__inlined_func$~lib/array/Array#every284 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr local.tee $2 i32.store $0 local.get $0 - i32.const 7008 + i32.const 7072 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0212 + loop $for-loop|0286 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19908,24 +20241,24 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 7008 + i32.const 7072 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every209 + br_if $__inlined_func$~lib/array/Array#every284 drop local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0212 + br $for-loop|0286 end end i32.const 1 @@ -19938,28 +20271,28 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#every216 (result i32) + block $__inlined_func$~lib/array/Array#every289 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr local.tee $2 i32.store $0 local.get $0 - i32.const 7040 + i32.const 7104 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0219 + loop $for-loop|0291 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -19971,24 +20304,24 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 7040 + i32.const 7104 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every216 + br_if $__inlined_func$~lib/array/Array#every289 drop local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0219 + br $for-loop|0291 end end i32.const 1 @@ -20018,28 +20351,28 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#every225 (result i32) + block $__inlined_func$~lib/array/Array#every296 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr local.tee $2 i32.store $0 local.get $0 - i32.const 7072 + i32.const 7136 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0228 + loop $for-loop|0298 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20051,24 +20384,24 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 7072 + i32.const 7136 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every225 + br_if $__inlined_func$~lib/array/Array#every296 drop local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0228 + br $for-loop|0298 end end i32.const 1 @@ -20109,27 +20442,27 @@ local.get $0 call $~lib/array/Array#pop drop - block $__inlined_func$~lib/array/Array#every232 (result i32) + block $__inlined_func$~lib/array/Array#every301 (result i32) global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 7104 + i32.const 7168 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0235 + loop $for-loop|0303 local.get $1 local.get $2 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $2 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20141,24 +20474,24 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 + local.get $8 local.get $1 local.get $0 - i32.const 7104 + i32.const 7168 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every232 + br_if $__inlined_func$~lib/array/Array#every301 drop local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0235 + br $for-loop|0303 end end i32.const 1 @@ -20208,21 +20541,21 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 7136 + i32.const 7200 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0243 + loop $for-loop|0309 local.get $1 local.get $2 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $2 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20234,14 +20567,14 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 + local.get $8 local.get $1 local.get $0 - i32.const 7136 + i32.const 7200 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some @@ -20250,7 +20583,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|0243 + br $for-loop|0309 end end i32.const 0 @@ -20264,28 +20597,28 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#some247 (result i32) + block $__inlined_func$~lib/array/Array#some312 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr local.tee $2 i32.store $0 local.get $0 - i32.const 7168 + i32.const 7232 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0250 + loop $for-loop|0314 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20297,23 +20630,23 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 7168 + i32.const 7232 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some247 + br_if $__inlined_func$~lib/array/Array#some312 drop local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0250 + br $for-loop|0314 end end i32.const 0 @@ -20326,28 +20659,28 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#some254 (result i32) + block $__inlined_func$~lib/array/Array#some317 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr local.tee $2 i32.store $0 local.get $0 - i32.const 7200 + i32.const 7264 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0257 + loop $for-loop|0319 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20359,23 +20692,23 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 7200 + i32.const 7264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some254 + br_if $__inlined_func$~lib/array/Array#some317 drop local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0257 + br $for-loop|0319 end end i32.const 0 @@ -20404,28 +20737,28 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#some263 (result i32) + block $__inlined_func$~lib/array/Array#some324 (result i32) global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr local.tee $2 i32.store $0 local.get $0 - i32.const 7232 + i32.const 7296 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0266 + loop $for-loop|0326 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20437,23 +20770,23 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 7232 + i32.const 7296 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some263 + br_if $__inlined_func$~lib/array/Array#some324 drop local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0266 + br $for-loop|0326 end end i32.const 0 @@ -20495,27 +20828,27 @@ local.get $0 call $~lib/array/Array#pop drop - block $__inlined_func$~lib/array/Array#some270 (result i32) + block $__inlined_func$~lib/array/Array#some329 (result i32) global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 7264 + i32.const 7328 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0273 + loop $for-loop|0331 local.get $1 local.get $2 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $2 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20527,23 +20860,23 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 + local.get $8 local.get $1 local.get $0 - i32.const 7264 + i32.const 7328 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some270 + br_if $__inlined_func$~lib/array/Array#some329 drop local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0273 + br $for-loop|0331 end end i32.const 0 @@ -20593,21 +20926,21 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 7296 + i32.const 7360 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0281 + loop $for-loop|0337 local.get $1 local.get $2 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $2 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20619,20 +20952,20 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $0 - i32.const 7296 + i32.const 7360 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0281 + br $for-loop|0337 end end global.get $std/array/i @@ -20654,21 +20987,21 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 7328 + i32.const 7392 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0288 + loop $for-loop|0342 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20680,20 +21013,20 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 7328 + i32.const 7392 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0288 + br $for-loop|0342 end end global.get $std/array/i @@ -20731,21 +21064,21 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 7360 + i32.const 7424 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $2 i32.load $0 offset=12 local.set $0 - loop $for-loop|0297 + loop $for-loop|0349 local.get $1 local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $0 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20757,20 +21090,20 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $2 - i32.const 7360 + i32.const 7424 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0297 + br $for-loop|0349 end end global.get $std/array/i @@ -20819,21 +21152,21 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 7392 + i32.const 7456 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0304 + loop $for-loop|0354 local.get $1 local.get $2 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $2 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20845,20 +21178,20 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $0 - i32.const 7392 + i32.const 7456 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0304 + br $for-loop|0354 end end global.get $std/array/i @@ -20907,21 +21240,21 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 7424 + i32.const 7488 i32.store $0 offset=8 i32.const 0 local.set $1 local.get $0 i32.load $0 offset=12 local.set $2 - loop $for-loop|0313 + loop $for-loop|0361 local.get $1 local.get $2 local.get $0 i32.load $0 offset=12 - local.tee $6 + local.tee $8 local.get $2 - local.get $6 + local.get $8 i32.lt_s select i32.lt_s @@ -20933,20 +21266,20 @@ i32.shl i32.add i32.load $0 - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $8 local.get $1 local.get $0 - i32.const 7424 + i32.const 7488 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0313 + br $for-loop|0361 end end global.get $~lib/memory/__stack_pointer @@ -20966,23 +21299,23 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end @@ -21021,14 +21354,14 @@ local.tee $2 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9232 + i32.const 9296 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -21038,26 +21371,26 @@ local.get $0 local.get $2 i32.load $0 offset=12 - local.tee $6 + local.tee $8 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $9 i32.store $0 - local.get $7 + local.get $9 i32.load $0 offset=4 - local.set $8 + local.set $10 i32.const 0 local.set $0 - loop $for-loop|019 + loop $for-loop|018 local.get $0 - local.get $6 + local.get $8 local.get $2 i32.load $0 offset=12 - local.tee $9 - local.get $6 - local.get $9 + local.tee $11 + local.get $8 + local.get $11 i32.lt_s select i32.lt_s @@ -21065,32 +21398,32 @@ local.get $0 i32.const 2 i32.shl - local.tee $9 + local.tee $11 local.get $2 i32.load $0 offset=4 i32.add i32.load $0 - local.set $10 + local.set $12 i32.const 3 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $12 local.get $0 local.get $2 - i32.const 9232 + i32.const 9296 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - local.tee $10 + local.tee $12 i32.store $0 offset=4 - local.get $8 - local.get $9 - i32.add local.get $10 + local.get $11 + i32.add + local.get $12 i32.store $0 - local.get $10 + local.get $12 if - local.get $7 - local.get $10 + local.get $9 + local.get $12 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end @@ -21098,7 +21431,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|019 + br $for-loop|018 end end global.get $~lib/memory/__stack_pointer @@ -21106,92 +21439,90 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $7 + local.get $9 i32.store $0 offset=136 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9264 + i32.const 9328 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i32.const 0 i32.store $0 - local.get $0 local.get $2 + local.get $1 i32.load $0 offset=12 - local.tee $6 + local.tee $2 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store $0 - local.get $7 + local.get $8 i32.load $0 offset=4 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|022 - local.get $0 + local.set $9 + loop $for-loop|019 local.get $6 local.get $2 + local.get $1 i32.load $0 offset=12 - local.tee $9 - local.get $6 - local.get $9 + local.tee $10 + local.get $2 + local.get $10 i32.lt_s select i32.lt_s if - local.get $0 + local.get $6 i32.const 2 i32.shl - local.tee $9 - local.get $2 + local.tee $10 + local.get $1 i32.load $0 offset=4 i32.add i32.load $0 - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $8 local.get $9 - i32.add local.get $10 - local.get $0 - local.get $2 - i32.const 9264 + i32.add + local.get $11 + local.get $6 + local.get $1 + i32.const 9328 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store $0 - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $0 - br $for-loop|022 + local.set $6 + br $for-loop|019 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.store $0 offset=140 - local.get $7 + local.get $8 i32.load $0 offset=12 i32.const 4 i32.ne @@ -21203,7 +21534,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get local.set $5 @@ -21233,10 +21564,10 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9296 + i32.const 9360 i32.store $0 offset=8 local.get $1 - i32.const 9296 + i32.const 9360 call $~lib/array/Array#map global.get $std/array/i i32.const 6 @@ -21273,10 +21604,10 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9328 + i32.const 9392 i32.store $0 offset=8 local.get $1 - i32.const 9328 + i32.const 9392 call $~lib/array/Array#map global.get $std/array/i i32.const 406 @@ -21324,10 +21655,10 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9360 + i32.const 9424 i32.store $0 offset=8 local.get $0 - i32.const 9360 + i32.const 9424 call $~lib/array/Array#map global.get $std/array/i i32.const 1 @@ -21375,11 +21706,11 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9392 + i32.const 9456 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 9392 + i32.const 9456 call $~lib/array/Array#filter local.tee $0 i32.store $0 offset=144 @@ -21403,10 +21734,10 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9424 + i32.const 9488 i32.store $0 offset=8 local.get $1 - i32.const 9424 + i32.const 9488 call $~lib/array/Array#filter drop global.get $std/array/i @@ -21444,10 +21775,10 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9456 + i32.const 9520 i32.store $0 offset=8 local.get $1 - i32.const 9456 + i32.const 9520 call $~lib/array/Array#filter drop global.get $std/array/i @@ -21496,10 +21827,10 @@ local.tee $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9488 + i32.const 9552 i32.store $0 offset=8 local.get $0 - i32.const 9488 + i32.const 9552 call $~lib/array/Array#filter drop global.get $std/array/i @@ -21548,7 +21879,7 @@ local.tee $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9520 + i32.const 9584 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -21557,14 +21888,14 @@ local.get $1 i32.load $0 offset=12 local.set $6 - loop $for-loop|0343 + loop $for-loop|0389 local.get $2 local.get $6 local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $8 local.get $6 - local.get $7 + local.get $8 i32.lt_s select i32.lt_s @@ -21576,14 +21907,14 @@ i32.shl i32.add i32.load $0 - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $7 + local.get $8 local.get $2 local.get $1 - i32.const 9520 + i32.const 9584 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 @@ -21591,7 +21922,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0343 + br $for-loop|0389 end end local.get $0 @@ -21613,7 +21944,7 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9552 + i32.const 9616 i32.store $0 offset=8 i32.const 4 local.set $0 @@ -21622,14 +21953,14 @@ local.get $1 i32.load $0 offset=12 local.set $6 - loop $for-loop|0350 + loop $for-loop|0394 local.get $2 local.get $6 local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $8 local.get $6 - local.get $7 + local.get $8 i32.lt_s select i32.lt_s @@ -21641,14 +21972,14 @@ i32.shl i32.add i32.load $0 - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $7 + local.get $8 local.get $2 local.get $1 - i32.const 9552 + i32.const 9616 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 @@ -21656,7 +21987,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0350 + br $for-loop|0394 end end local.get $0 @@ -21678,7 +22009,7 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9584 + i32.const 9648 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -21687,14 +22018,14 @@ local.get $1 i32.load $0 offset=12 local.set $6 - loop $for-loop|0357 + loop $for-loop|0399 local.get $2 local.get $6 local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $8 local.get $6 - local.get $7 + local.get $8 i32.lt_s select i32.lt_s @@ -21706,14 +22037,14 @@ i32.shl i32.add i32.load $0 - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $7 + local.get $8 local.get $2 local.get $1 - i32.const 9584 + i32.const 9648 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 @@ -21721,7 +22052,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0357 + br $for-loop|0399 end end local.get $0 @@ -21740,7 +22071,7 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9616 + i32.const 9680 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -21749,14 +22080,14 @@ local.get $1 i32.load $0 offset=12 local.set $6 - loop $for-loop|0364 + loop $for-loop|0404 local.get $2 local.get $6 local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $8 local.get $6 - local.get $7 + local.get $8 i32.lt_s select i32.lt_s @@ -21768,14 +22099,14 @@ i32.shl i32.add i32.load $0 - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $7 + local.get $8 local.get $2 local.get $1 - i32.const 9616 + i32.const 9680 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 @@ -21783,7 +22114,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0364 + br $for-loop|0404 end end local.get $0 @@ -21801,7 +22132,7 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9648 + i32.const 9712 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -21810,14 +22141,14 @@ local.get $1 i32.load $0 offset=12 local.set $6 - loop $for-loop|0371 + loop $for-loop|0409 local.get $2 local.get $6 local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $8 local.get $6 - local.get $7 + local.get $8 i32.lt_s select i32.lt_s @@ -21829,14 +22160,14 @@ i32.shl i32.add i32.load $0 - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $7 + local.get $8 local.get $2 local.get $1 - i32.const 9648 + i32.const 9712 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 @@ -21844,7 +22175,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0371 + br $for-loop|0409 end end local.get $0 @@ -21882,7 +22213,7 @@ local.tee $1 i32.store $0 local.get $0 - i32.const 9680 + i32.const 9744 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -21891,14 +22222,14 @@ local.get $1 i32.load $0 offset=12 local.set $6 - loop $for-loop|0380 + loop $for-loop|0416 local.get $2 local.get $6 local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $8 local.get $6 - local.get $7 + local.get $8 i32.lt_s select i32.lt_s @@ -21910,14 +22241,14 @@ i32.shl i32.add i32.load $0 - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $7 + local.get $8 local.get $2 local.get $1 - i32.const 9680 + i32.const 9744 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 @@ -21925,7 +22256,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0380 + br $for-loop|0416 end end local.get $0 @@ -21974,7 +22305,7 @@ local.tee $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9712 + i32.const 9776 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -21983,14 +22314,14 @@ local.get $1 i32.load $0 offset=12 local.set $6 - loop $for-loop|0387 + loop $for-loop|0421 local.get $2 local.get $6 local.get $1 i32.load $0 offset=12 - local.tee $7 + local.tee $8 local.get $6 - local.get $7 + local.get $8 i32.lt_s select i32.lt_s @@ -22002,14 +22333,14 @@ i32.shl i32.add i32.load $0 - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $7 + local.get $8 local.get $2 local.get $1 - i32.const 9712 + i32.const 9776 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 @@ -22017,7 +22348,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0387 + br $for-loop|0421 end end local.get $0 @@ -22068,7 +22399,7 @@ local.tee $2 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9744 + i32.const 9808 i32.store $0 offset=8 i32.const 0 local.set $1 @@ -22077,7 +22408,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|0395 + loop $for-loop|0427 local.get $0 i32.const 0 i32.ge_s @@ -22096,7 +22427,7 @@ local.get $6 local.get $0 local.get $2 - i32.const 9744 + i32.const 9808 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $1 @@ -22104,7 +22435,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0395 + br $for-loop|0427 end end local.get $1 @@ -22126,7 +22457,7 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 9776 + i32.const 9840 i32.store $0 offset=8 i32.const 4 local.set $1 @@ -22135,7 +22466,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|0401 + loop $for-loop|0431 local.get $0 i32.const 0 i32.ge_s @@ -22154,7 +22485,7 @@ local.get $6 local.get $0 local.get $2 - i32.const 9776 + i32.const 9840 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $1 @@ -22162,7 +22493,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0401 + br $for-loop|0431 end end local.get $1 @@ -22184,7 +22515,7 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 9808 + i32.const 9872 i32.store $0 offset=8 i32.const 0 local.set $1 @@ -22193,7 +22524,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|0407 + loop $for-loop|0435 local.get $0 i32.const 0 i32.ge_s @@ -22212,7 +22543,7 @@ local.get $6 local.get $0 local.get $2 - i32.const 9808 + i32.const 9872 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $1 @@ -22220,7 +22551,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0407 + br $for-loop|0435 end end local.get $1 @@ -22239,7 +22570,7 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 9840 + i32.const 9904 i32.store $0 offset=8 i32.const 0 local.set $1 @@ -22248,7 +22579,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|0413 + loop $for-loop|0439 local.get $0 i32.const 0 i32.ge_s @@ -22267,7 +22598,7 @@ local.get $6 local.get $0 local.get $2 - i32.const 9840 + i32.const 9904 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $1 @@ -22275,7 +22606,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0413 + br $for-loop|0439 end end local.get $1 @@ -22293,7 +22624,7 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 9872 + i32.const 9936 i32.store $0 offset=8 i32.const 0 local.set $1 @@ -22302,7 +22633,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|0419 + loop $for-loop|0443 local.get $0 i32.const 0 i32.ge_s @@ -22321,7 +22652,7 @@ local.get $6 local.get $0 local.get $2 - i32.const 9872 + i32.const 9936 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $1 @@ -22329,7 +22660,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0419 + br $for-loop|0443 end end local.get $1 @@ -22367,7 +22698,7 @@ local.tee $2 i32.store $0 local.get $0 - i32.const 9904 + i32.const 9968 i32.store $0 offset=8 i32.const 0 local.set $1 @@ -22376,7 +22707,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|0427 + loop $for-loop|0449 local.get $0 i32.const 0 i32.ge_s @@ -22395,7 +22726,7 @@ local.get $6 local.get $0 local.get $2 - i32.const 9904 + i32.const 9968 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $1 @@ -22403,7 +22734,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0427 + br $for-loop|0449 end end local.get $1 @@ -22452,7 +22783,7 @@ local.tee $2 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 9936 + i32.const 10000 i32.store $0 offset=8 i32.const 0 local.set $1 @@ -22461,7 +22792,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|0433 + loop $for-loop|0453 local.get $0 i32.const 0 i32.ge_s @@ -22480,7 +22811,7 @@ local.get $6 local.get $0 local.get $2 - i32.const 9936 + i32.const 10000 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $1 @@ -22488,7 +22819,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0433 + br $for-loop|0453 end end local.get $1 @@ -22966,7 +23297,7 @@ i32.const 3 i32.const 2 i32.const 9 - i32.const 10160 + i32.const 10224 call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=260 @@ -22977,7 +23308,7 @@ i32.const 3 i32.const 2 i32.const 9 - i32.const 10224 + i32.const 10288 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -22999,7 +23330,7 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 10256 + i32.const 10320 call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=264 @@ -23010,7 +23341,7 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 10320 + i32.const 10384 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -23032,7 +23363,7 @@ i32.const 8 i32.const 3 i32.const 12 - i32.const 10384 + i32.const 10448 call $~lib/rt/__newArray local.tee $2 i32.store $0 offset=268 @@ -23045,24 +23376,24 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of154 - block $0of155 - block $outOfRange56 + block $1of110 + block $0of111 + block $outOfRange12 global.get $~argumentsLength - br_table $0of155 $1of154 $outOfRange56 + br_table $0of111 $1of110 $outOfRange12 end unreachable end - i32.const 10480 + i32.const 10544 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 10480 + i32.const 10544 i32.store $0 end local.get $2 @@ -23079,7 +23410,7 @@ i32.const 8 i32.const 3 i32.const 12 - i32.const 10512 + i32.const 10576 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -23102,7 +23433,7 @@ drop i32.const 0 local.set $0 - loop $for-loop|071 + loop $for-loop|066 local.get $0 local.get $6 i32.lt_s @@ -23158,7 +23489,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|071 + br $for-loop|066 end end i32.const 1 @@ -23176,7 +23507,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 10608 + i32.const 10672 call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=272 @@ -23189,24 +23520,24 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of173 - block $0of174 - block $outOfRange75 + block $1of167 + block $0of168 + block $outOfRange69 global.get $~argumentsLength - br_table $0of174 $1of173 $outOfRange75 + br_table $0of168 $1of167 $outOfRange69 end unreachable end - i32.const 10656 + i32.const 10720 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 10656 + i32.const 10720 i32.store $0 end local.get $0 @@ -23222,7 +23553,7 @@ i32.const 5 i32.const 2 i32.const 4 - i32.const 10688 + i32.const 10752 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -23245,7 +23576,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 10736 + i32.const 10800 call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=276 @@ -23258,24 +23589,24 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of176 - block $0of177 - block $outOfRange78 + block $1of170 + block $0of171 + block $outOfRange72 global.get $~argumentsLength - br_table $0of177 $1of176 $outOfRange78 + br_table $0of171 $1of170 $outOfRange72 end unreachable end - i32.const 10784 + i32.const 10848 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 10784 + i32.const 10848 i32.store $0 end local.get $0 @@ -23291,7 +23622,7 @@ i32.const 5 i32.const 2 i32.const 8 - i32.const 10816 + i32.const 10880 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -23313,39 +23644,39 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 10864 + i32.const 10928 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store $0 offset=280 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 - i32.const 10896 + i32.const 10960 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store $0 offset=284 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 - i32.const 10928 + i32.const 10992 call $~lib/rt/__newArray - local.tee $6 + local.tee $2 i32.store $0 offset=288 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 - i32.const 10960 + i32.const 11024 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store $0 offset=292 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 - i32.const 11008 + i32.const 11072 call $~lib/rt/__newArray local.tee $8 i32.store $0 offset=296 @@ -23367,28 +23698,28 @@ global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $0 + local.tee $12 i32.store $0 offset=312 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $12 + local.tee $13 i32.store $0 offset=316 - local.get $1 + local.get $0 call $std/array/assertSortedDefault - local.get $2 + local.get $1 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 4 - i32.const 11088 + i32.const 11152 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23400,19 +23731,19 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $2 call $std/array/assertSortedDefault i32.const 2 i32.const 2 i32.const 4 - i32.const 11120 + i32.const 11184 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=8 - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23424,9 +23755,9 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 call $std/array/assertSortedDefault - local.get $7 + local.get $6 local.get $8 i32.const 0 call $std/array/isArraysEqual @@ -23484,9 +23815,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $12 call $std/array/assertSortedDefault - local.get $0 + local.get $12 local.get $8 i32.const 4 call $std/array/isArraysEqual @@ -23499,88 +23830,89 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $13 call $std/array/assertSortedDefault - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.const 24 memory.fill $0 - local.get $1 + local.get $0 global.get $std/array/inputStabArr - local.tee $2 + local.tee $1 i32.store $0 offset=8 - local.get $1 + i32.const 1 + global.set $~argumentsLength + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $6 i32.const 0 i32.store $0 - local.get $2 - i32.load $0 offset=12 - local.tee $7 i32.const 0 - local.get $7 - i32.const 0 - i32.le_s - select - local.set $8 + local.set $2 local.get $6 - local.get $7 - local.get $8 - i32.sub + local.get $1 + i32.load $0 offset=12 local.tee $6 + local.get $6 i32.const 0 local.get $6 i32.const 0 - i32.gt_s + i32.le_s select local.tee $6 + i32.sub + local.tee $8 + i32.const 0 + local.get $8 + i32.const 0 + i32.gt_s + select + local.tee $8 i32.const 2 i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $9 i32.store $0 - local.get $7 + local.get $9 i32.load $0 offset=4 - local.set $9 - local.get $2 + local.set $10 + local.get $1 i32.load $0 offset=4 - local.get $8 + local.get $6 i32.const 2 i32.shl i32.add - local.set $2 - local.get $6 + local.set $1 + local.get $8 i32.const 2 i32.shl local.set $6 - loop $while-continue|01 - local.get $0 + loop $while-continue|014 + local.get $2 local.get $6 i32.lt_u if - local.get $0 - local.get $9 + local.get $2 + local.get $10 i32.add - local.get $0 + local.get $1 local.get $2 i32.add i32.load $0 @@ -23588,16 +23920,16 @@ i32.store $0 local.get $8 if - local.get $7 + local.get $9 local.get $8 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 - br $while-continue|01 + local.set $2 + br $while-continue|014 end end global.get $~lib/memory/__stack_pointer @@ -23605,40 +23937,40 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 11152 + i32.const 11216 i32.store $0 offset=4 - local.get $7 + local.get $9 i32.load $0 offset=4 - local.get $7 + local.get $9 i32.load $0 offset=12 - i32.const 11152 + i32.const 11216 call $~lib/util/sort/SORT - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.store $0 offset=12 i32.const 1 - local.set $2 + local.set $1 i32.const 0 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 i32.load $0 offset=12 - local.set $1 - loop $for-loop|02 + local.set $0 + loop $for-loop|03 local.get $0 - local.get $1 - i32.lt_s + local.get $2 + i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $0 + local.get $9 + local.get $2 call $~lib/array/Array#__get local.tee $6 i32.store $0 offset=16 @@ -23648,7 +23980,7 @@ i32.store $0 global.get $~lib/memory/__stack_pointer local.get $8 - local.get $0 + local.get $2 call $~lib/array/Array#__get local.tee $8 i32.store $0 offset=20 @@ -23668,18 +24000,18 @@ end if i32.const 0 - local.set $2 + local.set $1 br $for-break0 end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|02 + local.set $2 + br $for-loop|03 end end end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -23704,28 +24036,28 @@ local.tee $1 i32.store $0 offset=324 global.get $~lib/memory/__stack_pointer - i32.const 11184 + i32.const 11248 i32.store $0 offset=8 local.get $0 - i32.const 11184 + i32.const 11248 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - i32.const 11216 + i32.const 11280 i32.store $0 offset=8 local.get $0 - i32.const 11216 + i32.const 11280 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - i32.const 11248 + i32.const 11312 i32.store $0 offset=8 local.get $1 - i32.const 11248 + i32.const 11312 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - i32.const 11280 + i32.const 11344 i32.store $0 offset=8 local.get $1 - i32.const 11280 + i32.const 11344 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer local.set $1 @@ -23734,7 +24066,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23746,7 +24078,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23805,7 +24137,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|080 + loop $for-loop|073 local.get $0 i32.const 2 i32.lt_s @@ -23829,7 +24161,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|080 + br $for-loop|073 end end global.get $~lib/memory/__stack_pointer @@ -23840,10 +24172,10 @@ local.get $2 i32.store $0 offset=328 global.get $~lib/memory/__stack_pointer - i32.const 11312 + i32.const 11376 i32.store $0 offset=8 local.get $2 - i32.const 11312 + i32.const 11376 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer local.set $1 @@ -23854,7 +24186,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23866,7 +24198,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23895,20 +24227,20 @@ i32.const 2048 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $8 i32.store $0 offset=4 local.get $6 - local.get $7 + local.get $8 i32.store $0 - local.get $7 + local.get $8 if local.get $6 - local.get $7 + local.get $8 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $6 - local.get $7 + local.get $8 i32.store $0 offset=4 local.get $6 i32.const 2048 @@ -23923,7 +24255,7 @@ local.get $2 local.get $6 i32.store $0 - loop $for-loop|03 + loop $for-loop|016 local.get $0 i32.const 512 i32.lt_s @@ -23933,7 +24265,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -23966,7 +24298,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $for-loop|016 end end global.get $~lib/memory/__stack_pointer @@ -23977,56 +24309,56 @@ local.get $6 i32.store $0 offset=332 global.get $~lib/memory/__stack_pointer - i32.const 11344 + i32.const 11408 i32.store $0 offset=8 local.get $6 - i32.const 11344 + i32.const 11408 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 i32.const 34 - i32.const 11536 + i32.const 11600 call $~lib/rt/__newArray - local.tee $6 + local.tee $1 i32.store $0 offset=336 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 i32.const 34 - i32.const 11584 + i32.const 11648 call $~lib/rt/__newArray - local.tee $7 + local.tee $2 i32.store $0 offset=340 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of15 - block $0of16 - block $outOfRange7 + block $1of11 + block $0of12 + block $outOfRange3 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of16 $1of15 $outOfRange7 + br_table $0of12 $1of11 $outOfRange3 end unreachable end - i32.const 11632 - local.set $2 + i32.const 11696 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 11632 + i32.const 11696 i32.store $0 end global.get $~lib/memory/__stack_pointer @@ -24034,64 +24366,64 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $6 + local.get $1 i32.load $0 offset=4 - local.get $6 + local.get $1 i32.load $0 offset=12 - local.get $2 + local.get $6 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 i32.const 1 - local.set $1 - local.get $6 - i32.load $0 offset=12 local.set $0 - loop $for-loop|08 + local.get $1 + i32.load $0 offset=12 + local.set $8 + loop $for-loop|05 local.get $0 - local.get $1 - i32.gt_s + local.get $8 + i32.lt_s if - local.get $6 local.get $1 + local.get $0 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store $0 - local.get $6 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store $0 offset=4 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $9 - local.get $2 + local.get $10 + local.get $6 i32.load $0 call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -24104,11 +24436,11 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|08 + local.set $0 + br $for-loop|05 end end global.get $~lib/memory/__stack_pointer @@ -24140,16 +24472,16 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $6 + local.get $1 i32.load $0 offset=12 - local.tee $1 - local.get $7 + local.tee $6 + local.get $2 i32.load $0 offset=12 i32.ne if @@ -24160,8 +24492,8 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end - local.get $6 - local.get $7 + local.get $1 + local.get $2 i32.eq if global.get $~lib/memory/__stack_pointer @@ -24173,27 +24505,27 @@ end i32.const 0 local.set $0 - loop $for-loop|04 + loop $for-loop|08 local.get $0 - local.get $1 + local.get $6 i32.lt_s if - local.get $6 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $2 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $8 i32.store $0 - local.get $7 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store $0 offset=4 - local.get $2 local.get $8 + local.get $9 call $~lib/string/String.__eq i32.eqz if @@ -24208,7 +24540,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|04 + br $for-loop|08 end end global.get $~lib/memory/__stack_pointer @@ -24239,26 +24571,26 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1460 - block $0of1461 - block $outOfRange462 + block $1of1477 + block $0of1478 + block $outOfRange479 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of1461 $1of1460 $outOfRange462 + br_table $0of1478 $1of1477 $outOfRange479 end unreachable end - i32.const 11664 + i32.const 11728 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 11664 + i32.const 11728 i32.store $0 end local.get $0 @@ -24271,39 +24603,39 @@ i32.const 2 i32.const 0 i32.const 37 - i32.const 11696 + i32.const 11760 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 offset=348 global.get $~lib/memory/__stack_pointer - i32.const 11792 + i32.const 11856 i32.store $0 offset=352 i32.const 0 - local.set $2 - local.get $0 + local.set $0 + local.get $1 i32.load $0 offset=4 - local.set $6 - local.get $0 + local.set $2 + local.get $1 i32.load $0 offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 block $__inlined_func$~lib/util/string/joinBooleanArray - local.get $0 + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $6 i32.const 0 i32.lt_s if @@ -24311,19 +24643,19 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end - local.get $7 + local.get $6 i32.eqz if - i32.const 11728 - i32.const 11760 - local.get $6 + i32.const 11792 + i32.const 11824 + local.get $2 i32.load8_u $0 select - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -24331,14 +24663,14 @@ br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u local.tee $8 i32.const 5 i32.add - local.get $7 + local.get $6 i32.mul i32.const 5 i32.add @@ -24349,15 +24681,13 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store $0 - i32.const 0 - local.set $0 - loop $for-loop|159 - local.get $2 + loop $for-loop|117 + local.get $6 local.get $7 - i32.lt_s + i32.gt_s if local.get $2 - local.get $6 + local.get $7 i32.add i32.load8_u $0 local.tee $10 @@ -24370,8 +24700,8 @@ i32.const 1 i32.shl i32.add - i32.const 11728 - i32.const 11760 + i32.const 11792 + i32.const 11824 local.get $10 select local.get $11 @@ -24389,7 +24719,7 @@ i32.const 1 i32.shl i32.add - i32.const 11792 + i32.const 11856 local.get $8 i32.const 1 i32.shl @@ -24399,15 +24729,15 @@ i32.add local.set $0 end - local.get $2 + local.get $7 i32.const 1 i32.add - local.set $2 - br $for-loop|159 + local.set $7 + br $for-loop|117 end end + local.get $2 local.get $6 - local.get $7 i32.add i32.load8_u $0 local.tee $2 @@ -24420,8 +24750,8 @@ i32.const 1 i32.shl i32.add - i32.const 11728 - i32.const 11760 + i32.const 11792 + i32.const 11824 local.get $2 select local.get $6 @@ -24438,7 +24768,7 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -24449,18 +24779,16 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 + local.tee $0 local.get $1 - i32.const 11824 - i32.store $0 offset=8 + i32.store $0 local.get $0 - i32.const 11824 + i32.const 11888 + i32.store $0 offset=8 + local.get $1 + i32.const 11888 call $~lib/string/String.__eq i32.eqz if @@ -24474,7 +24802,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 11872 + i32.const 11936 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -24482,20 +24810,20 @@ local.get $0 i32.store $0 offset=348 local.get $1 - i32.const 11504 + i32.const 11568 i32.store $0 offset=352 local.get $0 - i32.const 11504 + i32.const 11568 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 11904 + i32.const 11968 i32.store $0 offset=8 local.get $0 - i32.const 11904 + i32.const 11968 call $~lib/string/String.__eq i32.eqz if @@ -24509,7 +24837,7 @@ i32.const 3 i32.const 2 i32.const 8 - i32.const 11936 + i32.const 12000 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -24517,20 +24845,20 @@ local.get $0 i32.store $0 offset=348 local.get $1 - i32.const 11968 + i32.const 12032 i32.store $0 offset=352 local.get $0 - i32.const 11968 + i32.const 12032 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 11904 + i32.const 11968 i32.store $0 offset=8 local.get $0 - i32.const 11904 + i32.const 11968 call $~lib/string/String.__eq i32.eqz if @@ -24544,7 +24872,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 12000 + i32.const 12064 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -24552,20 +24880,20 @@ local.get $0 i32.store $0 offset=348 local.get $1 - i32.const 12032 + i32.const 12096 i32.store $0 offset=352 local.get $0 - i32.const 12032 + i32.const 12096 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 12064 + i32.const 12128 i32.store $0 offset=8 local.get $0 - i32.const 12064 + i32.const 12128 call $~lib/string/String.__eq i32.eqz if @@ -24579,7 +24907,7 @@ i32.const 6 i32.const 3 i32.const 12 - i32.const 12144 + i32.const 12208 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -24587,7 +24915,7 @@ local.get $0 i32.store $0 offset=348 local.get $1 - i32.const 12224 + i32.const 12288 i32.store $0 offset=352 local.get $0 call $~lib/array/Array#join @@ -24596,10 +24924,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 13392 + i32.const 13456 i32.store $0 offset=8 local.get $0 - i32.const 13392 + i32.const 13456 call $~lib/string/String.__eq i32.eqz if @@ -24613,7 +24941,7 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 13536 + i32.const 13600 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -24621,23 +24949,20 @@ local.get $0 i32.store $0 offset=348 local.get $1 - i32.const 11504 + i32.const 11568 i32.store $0 offset=352 local.get $0 - i32.load $0 offset=4 - local.get $0 - i32.load $0 offset=12 - i32.const 11504 - call $~lib/util/string/joinStringArray + i32.const 11568 + call $~lib/array/Array<~lib/string/String|null>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 13504 + i32.const 13568 i32.store $0 offset=8 local.get $0 - i32.const 13504 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if @@ -24679,7 +25004,7 @@ local.get $1 i32.store $0 offset=364 global.get $~lib/memory/__stack_pointer - i32.const 11792 + i32.const 11856 i32.store $0 offset=352 local.get $1 call $~lib/array/Array#join @@ -24688,10 +25013,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 13632 + i32.const 13696 i32.store $0 offset=8 local.get $0 - i32.const 13632 + i32.const 13696 call $~lib/string/String.__eq i32.eqz if @@ -24729,7 +25054,7 @@ local.get $1 i32.store $0 offset=376 global.get $~lib/memory/__stack_pointer - i32.const 11792 + i32.const 11856 i32.store $0 offset=352 local.get $1 call $~lib/array/Array#join @@ -24738,10 +25063,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 13728 + i32.const 13792 i32.store $0 offset=8 local.get $0 - i32.const 13728 + i32.const 13792 call $~lib/string/String.__eq i32.eqz if @@ -24756,7 +25081,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 13824 + i32.const 13888 call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=380 @@ -24764,7 +25089,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 13856 + i32.const 13920 call $~lib/rt/__newArray local.tee $1 i32.store $0 offset=384 @@ -24772,7 +25097,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 13888 + i32.const 13952 call $~lib/rt/__newArray local.tee $2 i32.store $0 offset=388 @@ -24780,7 +25105,7 @@ i32.const 4 i32.const 2 i32.const 4 - i32.const 13920 + i32.const 13984 call $~lib/rt/__newArray local.tee $6 i32.store $0 offset=392 @@ -24791,10 +25116,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 i32.store $0 offset=8 local.get $0 - i32.const 11504 + i32.const 11568 call $~lib/string/String.__eq i32.eqz if @@ -24813,10 +25138,10 @@ local.get $0 i32.store $0 local.get $1 - i32.const 13504 + i32.const 13568 i32.store $0 offset=8 local.get $0 - i32.const 13504 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if @@ -24835,10 +25160,10 @@ local.get $0 i32.store $0 local.get $1 - i32.const 13968 + i32.const 14032 i32.store $0 offset=8 local.get $0 - i32.const 13968 + i32.const 14032 call $~lib/string/String.__eq i32.eqz if @@ -24857,10 +25182,10 @@ local.get $0 i32.store $0 local.get $1 - i32.const 14000 + i32.const 14064 i32.store $0 offset=8 local.get $0 - i32.const 14000 + i32.const 14064 call $~lib/string/String.__eq i32.eqz if @@ -24874,7 +25199,7 @@ i32.const 3 i32.const 0 i32.const 38 - i32.const 14048 + i32.const 14112 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -24887,10 +25212,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 14080 + i32.const 14144 i32.store $0 offset=8 local.get $0 - i32.const 14080 + i32.const 14144 call $~lib/string/String.__eq i32.eqz if @@ -24904,7 +25229,7 @@ i32.const 3 i32.const 0 i32.const 38 - i32.const 14112 + i32.const 14176 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -24917,10 +25242,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 14144 + i32.const 14208 i32.store $0 offset=8 local.get $0 - i32.const 14144 + i32.const 14208 call $~lib/string/String.__eq i32.eqz if @@ -24934,52 +25259,54 @@ i32.const 3 i32.const 1 i32.const 11 - i32.const 14192 + i32.const 14256 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 offset=348 + local.tee $0 local.get $1 + i32.store $0 offset=348 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store $0 - local.get $1 - i32.const 11792 + local.get $2 + i32.const 11856 i32.store $0 i32.const 0 - local.set $2 - local.get $0 - i32.load $0 offset=4 - local.set $6 - local.get $0 - i32.load $0 offset=12 local.set $0 + i32.const 0 + local.set $6 + local.get $1 + i32.load $0 offset=4 + local.set $7 local.get $1 + i32.load $0 offset=12 + local.set $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $2 i32.const 0 i32.lt_s if @@ -24987,17 +25314,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $7 + local.get $2 i32.eqz if - local.get $6 + local.get $7 i32.load16_u $0 call $~lib/util/number/utoa32 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25005,14 +25332,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u local.tee $8 i32.const 10 i32.add - local.get $7 + local.get $2 i32.mul i32.const 10 i32.add @@ -25023,20 +25350,18 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store $0 - i32.const 0 - local.set $0 - loop $for-loop|060 + loop $for-loop|020 local.get $2 - local.get $7 - i32.lt_s + local.get $6 + i32.gt_s if local.get $1 local.get $0 i32.const 1 i32.shl i32.add + local.get $7 local.get $6 - local.get $2 i32.const 1 i32.shl i32.add @@ -25052,7 +25377,7 @@ i32.const 1 i32.shl i32.add - i32.const 11792 + i32.const 11856 local.get $8 i32.const 1 i32.shl @@ -25062,11 +25387,11 @@ i32.add local.set $0 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|060 + local.set $6 + br $for-loop|020 end end local.get $1 @@ -25074,8 +25399,8 @@ i32.const 1 i32.shl i32.add - local.get $6 local.get $7 + local.get $2 i32.const 1 i32.shl i32.add @@ -25090,7 +25415,7 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25101,21 +25426,19 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 14224 + i32.const 14288 i32.store $0 offset=8 - local.get $0 - i32.const 14224 + local.get $1 + i32.const 14288 call $~lib/string/String.__eq i32.eqz if @@ -25129,52 +25452,54 @@ i32.const 2 i32.const 1 i32.const 39 - i32.const 14272 + i32.const 14336 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 offset=348 + local.tee $0 local.get $1 + i32.store $0 offset=348 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store $0 - local.get $1 - i32.const 11792 + local.get $2 + i32.const 11856 i32.store $0 i32.const 0 - local.set $2 - local.get $0 - i32.load $0 offset=4 - local.set $6 - local.get $0 - i32.load $0 offset=12 local.set $0 + i32.const 0 + local.set $6 + local.get $1 + i32.load $0 offset=4 + local.set $7 local.get $1 + i32.load $0 offset=12 + local.set $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $2 i32.const 0 i32.lt_s if @@ -25182,17 +25507,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $7 + local.get $2 i32.eqz if - local.get $6 + local.get $7 i32.load16_s $0 call $~lib/util/number/itoa32 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25200,14 +25525,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u local.tee $8 i32.const 11 i32.add - local.get $7 + local.get $2 i32.mul i32.const 11 i32.add @@ -25218,20 +25543,18 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store $0 - i32.const 0 - local.set $0 - loop $for-loop|061 + loop $for-loop|021 local.get $2 - local.get $7 - i32.lt_s + local.get $6 + i32.gt_s if local.get $1 local.get $0 i32.const 1 i32.shl i32.add + local.get $7 local.get $6 - local.get $2 i32.const 1 i32.shl i32.add @@ -25247,7 +25570,7 @@ i32.const 1 i32.shl i32.add - i32.const 11792 + i32.const 11856 local.get $8 i32.const 1 i32.shl @@ -25257,11 +25580,11 @@ i32.add local.set $0 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|061 + local.set $6 + br $for-loop|021 end end local.get $1 @@ -25269,8 +25592,8 @@ i32.const 1 i32.shl i32.add - local.get $6 local.get $7 + local.get $2 i32.const 1 i32.shl i32.add @@ -25285,7 +25608,7 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25296,21 +25619,19 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 14304 + i32.const 14368 i32.store $0 offset=8 - local.get $0 - i32.const 14304 + local.get $1 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if @@ -25324,7 +25645,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 14352 + i32.const 14416 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -25337,10 +25658,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 14384 + i32.const 14448 i32.store $0 offset=8 local.get $0 - i32.const 14384 + i32.const 14448 call $~lib/string/String.__eq i32.eqz if @@ -25354,7 +25675,7 @@ i32.const 3 i32.const 3 i32.const 40 - i32.const 14448 + i32.const 14512 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -25366,7 +25687,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25374,7 +25695,7 @@ i32.const 0 i32.store $0 local.get $1 - i32.const 11792 + i32.const 11856 i32.store $0 local.get $0 call $~lib/array/Array#join @@ -25387,10 +25708,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 14496 + i32.const 14560 i32.store $0 offset=8 local.get $0 - i32.const 14496 + i32.const 14560 call $~lib/string/String.__eq i32.eqz if @@ -25404,52 +25725,54 @@ i32.const 5 i32.const 3 i32.const 41 - i32.const 14576 + i32.const 14640 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 offset=348 + local.tee $0 local.get $1 + i32.store $0 offset=348 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store $0 - local.get $1 - i32.const 11792 + local.get $2 + i32.const 11856 i32.store $0 i32.const 0 - local.set $2 - local.get $0 - i32.load $0 offset=4 - local.set $6 - local.get $0 - i32.load $0 offset=12 local.set $0 + i32.const 0 + local.set $6 + local.get $1 + i32.load $0 offset=4 + local.set $7 local.get $1 + i32.load $0 offset=12 + local.set $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $2 i32.const 0 i32.lt_s if @@ -25457,29 +25780,29 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $7 + local.get $2 i32.eqz if - local.get $6 - i64.load $0 - i64.extend32_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16128 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - block $__inlined_func$~lib/util/number/itoa64 + block $__inlined_func$~lib/util/number/itoa64 (result i32) + local.get $7 + i64.load $0 + i64.extend32_s + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 local.get $3 i64.eqz if @@ -25487,8 +25810,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7648 - local.set $0 + i32.const 7712 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -25649,7 +25971,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 end + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25657,14 +25981,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u local.tee $8 i32.const 21 i32.add - local.get $7 + local.get $2 i32.mul i32.const 21 i32.add @@ -25675,20 +25999,18 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store $0 - i32.const 0 - local.set $0 - loop $for-loop|062 + loop $for-loop|022 local.get $2 - local.get $7 - i32.lt_s + local.get $6 + i32.gt_s if local.get $1 local.get $0 i32.const 1 i32.shl i32.add + local.get $7 local.get $6 - local.get $2 i32.const 3 i32.shl i32.add @@ -25704,7 +26026,7 @@ i32.const 1 i32.shl i32.add - i32.const 11792 + i32.const 11856 local.get $8 i32.const 1 i32.shl @@ -25714,11 +26036,11 @@ i32.add local.set $0 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|062 + local.set $6 + br $for-loop|022 end end local.get $1 @@ -25726,8 +26048,8 @@ i32.const 1 i32.shl i32.add - local.get $6 local.get $7 + local.get $2 i32.const 3 i32.shl i32.add @@ -25742,7 +26064,7 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25753,21 +26075,19 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 14640 + i32.const 14704 i32.store $0 offset=8 - local.get $0 - i32.const 14640 + local.get $1 + i32.const 14704 call $~lib/string/String.__eq i32.eqz if @@ -25782,7 +26102,7 @@ i32.const 7 i32.const 2 i32.const 34 - i32.const 14800 + i32.const 14864 call $~lib/rt/__newArray local.tee $0 i32.store $0 offset=396 @@ -25793,10 +26113,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 14848 + i32.const 14912 i32.store $0 offset=8 local.get $0 - i32.const 14848 + i32.const 14912 call $~lib/string/String.__eq i32.eqz if @@ -25810,7 +26130,7 @@ i32.const 4 i32.const 2 i32.const 34 - i32.const 14960 + i32.const 15024 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -25823,10 +26143,10 @@ local.get $0 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 15008 + i32.const 15072 i32.store $0 offset=8 local.get $0 - i32.const 15008 + i32.const 15072 call $~lib/string/String.__eq i32.eqz if @@ -25855,7 +26175,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 15040 + i32.const 15104 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -25863,7 +26183,7 @@ i32.const 2 i32.const 2 i32.const 4 - i32.const 15072 + i32.const 15136 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -25874,7 +26194,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25882,13 +26202,13 @@ i32.const 0 i32.store $0 local.get $0 - i32.const 11792 + i32.const 11856 i32.store $0 i32.const 0 - local.set $2 + local.set $6 local.get $1 i32.load $0 offset=4 - local.set $6 + local.set $2 local.get $1 i32.load $0 offset=12 local.set $1 @@ -25897,7 +26217,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25911,7 +26231,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s if @@ -25919,15 +26239,15 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.load $0 local.tee $0 i32.store $0 @@ -25936,33 +26256,33 @@ local.get $0 call $~lib/array/Array#toString else - i32.const 11504 + i32.const 11568 end - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 i32.store $0 offset=4 - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u local.set $7 - loop $for-loop|063 - local.get $1 - local.get $2 + loop $for-loop|023 + local.get $0 + local.get $6 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 local.get $2 + local.get $6 i32.const 2 i32.shl i32.add @@ -25980,52 +26300,52 @@ local.get $8 i32.store $0 offset=8 local.get $9 - local.get $0 + local.get $1 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 11792 + local.get $1 + i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|063 + local.set $6 + br $for-loop|023 end end global.get $~lib/memory/__stack_pointer - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer local.set $2 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=8 local.get $2 - local.get $0 local.get $1 + local.get $0 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end global.get $~lib/memory/__stack_pointer @@ -26038,13 +26358,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 15104 + i32.const 15168 i32.store $0 offset=8 - local.get $0 - i32.const 15104 + local.get $1 + i32.const 15168 call $~lib/string/String.__eq i32.eqz if @@ -26073,7 +26393,7 @@ i32.const 2 i32.const 0 i32.const 7 - i32.const 15152 + i32.const 15216 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26081,7 +26401,7 @@ i32.const 2 i32.const 0 i32.const 7 - i32.const 15184 + i32.const 15248 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -26092,7 +26412,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26100,13 +26420,13 @@ i32.const 0 i32.store $0 local.get $0 - i32.const 11792 + i32.const 11856 i32.store $0 i32.const 0 - local.set $2 + local.set $6 local.get $1 i32.load $0 offset=4 - local.set $6 + local.set $2 local.get $1 i32.load $0 offset=12 local.set $1 @@ -26115,7 +26435,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26129,7 +26449,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s if @@ -26137,15 +26457,15 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.load $0 local.tee $0 i32.store $0 @@ -26154,33 +26474,33 @@ local.get $0 call $~lib/array/Array#toString else - i32.const 11504 + i32.const 11568 end - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 i32.store $0 offset=4 - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u local.set $7 - loop $for-loop|064 - local.get $1 - local.get $2 + loop $for-loop|024 + local.get $0 + local.get $6 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 local.get $2 + local.get $6 i32.const 2 i32.shl i32.add @@ -26198,52 +26518,52 @@ local.get $8 i32.store $0 offset=8 local.get $9 - local.get $0 + local.get $1 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 11792 + local.get $1 + i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|064 + local.set $6 + br $for-loop|024 end end global.get $~lib/memory/__stack_pointer - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer local.set $2 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=8 local.get $2 - local.get $0 local.get $1 + local.get $0 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end global.get $~lib/memory/__stack_pointer @@ -26256,13 +26576,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 15104 + i32.const 15168 i32.store $0 offset=8 - local.get $0 - i32.const 15104 + local.get $1 + i32.const 15168 call $~lib/string/String.__eq i32.eqz if @@ -26303,7 +26623,7 @@ i32.const 1 i32.const 2 i32.const 8 - i32.const 15216 + i32.const 15280 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26318,7 +26638,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26326,13 +26646,13 @@ i32.const 0 i32.store $0 local.get $0 - i32.const 11792 + i32.const 11856 i32.store $0 i32.const 0 - local.set $2 + local.set $6 local.get $1 i32.load $0 offset=4 - local.set $6 + local.set $2 local.get $1 i32.load $0 offset=12 local.set $1 @@ -26341,7 +26661,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26355,7 +26675,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s if @@ -26363,15 +26683,15 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.load $0 local.tee $0 i32.store $0 @@ -26380,33 +26700,33 @@ local.get $0 call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 11504 + i32.const 11568 end - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - i32.const 11504 - local.set $0 + i32.const 11568 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 i32.store $0 offset=4 - i32.const 11788 + i32.const 11852 i32.load $0 i32.const 1 i32.shr_u local.set $7 - loop $for-loop|065 - local.get $1 - local.get $2 + loop $for-loop|025 + local.get $0 + local.get $6 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 local.get $2 + local.get $6 i32.const 2 i32.shl i32.add @@ -26424,52 +26744,52 @@ local.get $8 i32.store $0 offset=8 local.get $9 - local.get $0 + local.get $1 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 11792 + local.get $1 + i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 - br $for-loop|065 + local.set $6 + br $for-loop|025 end end global.get $~lib/memory/__stack_pointer - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $1 + local.tee $0 i32.store $0 - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer local.set $2 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=8 local.get $2 - local.get $0 local.get $1 + local.get $0 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store $0 offset=4 end global.get $~lib/memory/__stack_pointer @@ -26482,13 +26802,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer - i32.const 13504 + i32.const 13568 i32.store $0 offset=8 - local.get $0 - i32.const 13504 + local.get $1 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if @@ -26517,7 +26837,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 15248 + i32.const 15312 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26525,7 +26845,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 15280 + i32.const 15344 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26533,7 +26853,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 15312 + i32.const 15376 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26541,7 +26861,7 @@ i32.const 3 i32.const 2 i32.const 4 - i32.const 15344 + i32.const 15408 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -26609,7 +26929,7 @@ i32.const 1 i32.const 2 i32.const 34 - i32.const 15408 + i32.const 15472 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26617,7 +26937,7 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 15504 + i32.const 15568 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26625,7 +26945,7 @@ i32.const 3 i32.const 2 i32.const 34 - i32.const 15632 + i32.const 15696 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26633,20 +26953,20 @@ i32.const 1 i32.const 2 i32.const 34 - i32.const 15696 + i32.const 15760 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 local.get $1 i32.store $0 offset=468 global.get $~lib/memory/__stack_pointer - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26654,159 +26974,159 @@ i64.store $0 local.get $1 i32.load $0 offset=4 - local.set $7 + local.set $8 local.get $1 i32.load $0 offset=12 - local.set $8 - i32.const 0 - local.set $2 + local.set $9 i32.const 0 local.set $0 - loop $for-loop|083 - local.get $0 - local.get $8 + i32.const 0 + local.set $1 + loop $for-loop|074 + local.get $1 + local.get $9 i32.lt_s if - local.get $7 - local.get $0 + local.get $8 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $1 + local.tee $2 if (result i32) - local.get $1 + local.get $2 i32.load $0 offset=12 else i32.const 0 end - local.get $2 - i32.add - local.set $2 local.get $0 - i32.const 1 i32.add local.set $0 - br $for-loop|083 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|074 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $10 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 34 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store $0 offset=4 - local.get $10 - local.get $2 - i32.store $0 offset=12 - local.get $10 + local.get $11 local.get $0 + i32.store $0 offset=12 + local.get $11 + local.get $1 i32.store $0 offset=8 + local.get $11 local.get $10 - local.get $9 i32.store $0 offset=4 + local.get $11 local.get $10 - local.get $9 i32.store $0 - local.get $9 + local.get $10 if + local.get $11 local.get $10 - local.get $9 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 0 - local.set $0 + local.set $2 i32.const 0 - local.set $1 - loop $for-loop|186 - local.get $1 - local.get $8 + local.set $6 + loop $for-loop|175 + local.get $6 + local.get $9 i32.lt_s if - local.get $7 - local.get $1 + local.get $8 + local.get $6 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $11 + local.tee $1 if - local.get $0 - local.get $9 + local.get $2 + local.get $10 i32.add - local.get $11 + local.get $1 i32.load $0 offset=4 - local.get $11 + local.get $1 i32.load $0 offset=12 i32.const 2 i32.shl - local.tee $11 + local.tee $1 memory.copy $0 $0 - local.get $0 - local.get $11 + local.get $1 + local.get $2 i32.add - local.set $0 + local.set $2 end - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|186 + local.set $6 + br $for-loop|175 end end i32.const 0 - local.set $0 - loop $for-loop|289 + local.set $1 + loop $for-loop|276 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $9 - local.get $0 + local.get $10 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $1 + local.tee $2 if - local.get $9 - local.get $1 + local.get $10 + local.get $2 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|289 + local.set $1 + br $for-loop|276 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $10 + local.get $7 + local.get $11 i32.store $0 offset=472 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 i32.const 34 - i32.const 15728 + i32.const 15792 call $~lib/rt/__newArray local.tee $1 i32.store $0 offset=476 - local.get $10 + local.get $11 i32.load $0 offset=12 i32.const 8 i32.ne @@ -26826,7 +27146,7 @@ i32.load $0 offset=12 i32.lt_s if - local.get $10 + local.get $11 local.get $0 call $~lib/array/Array#__get local.set $2 @@ -26877,7 +27197,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 15792 + i32.const 15856 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26885,7 +27205,7 @@ i32.const 0 i32.const 2 i32.const 4 - i32.const 15824 + i32.const 15888 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -26925,7 +27245,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 15856 + i32.const 15920 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 @@ -26933,7 +27253,7 @@ i32.const 1 i32.const 2 i32.const 4 - i32.const 15888 + i32.const 15952 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -26942,14 +27262,14 @@ global.get $~lib/memory/__stack_pointer local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 15920 + i32.const 15984 i32.store $0 offset=348 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -26974,7 +27294,7 @@ local.set $8 i32.const 0 local.set $0 - loop $for-loop|0485 + loop $for-loop|0501 local.get $0 local.get $6 local.get $1 @@ -27004,7 +27324,7 @@ local.get $11 local.get $0 local.get $1 - i32.const 15920 + i32.const 15984 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) local.tee $9 @@ -27025,7 +27345,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0485 + br $for-loop|0501 end end global.get $~lib/memory/__stack_pointer @@ -27110,18 +27430,18 @@ global.set $std/array/inputStabArr i32.const 0 global.set $std/array/outputStabArr - i32.const 48896 + i32.const 48960 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s if - loop $while-continue|0491 + loop $while-continue|0506 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0491 + br $while-continue|0506 end end end @@ -27151,8 +27471,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27167,11 +27487,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27256,11 +27576,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27293,11 +27613,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27359,11 +27679,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27401,11 +27721,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27472,11 +27792,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27575,11 +27895,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27691,11 +28011,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27802,11 +28122,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27860,11 +28180,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27911,11 +28231,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27931,7 +28251,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7648 + i32.const 7712 return end global.get $~lib/memory/__stack_pointer @@ -28030,11 +28350,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28112,11 +28432,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28192,7 +28512,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -28211,7 +28531,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -28247,8 +28567,8 @@ local.get $0 return end - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28261,11 +28581,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28282,10 +28602,10 @@ end unreachable end - i32.const 10192 + i32.const 10256 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 10192 + i32.const 10256 i32.store $0 end local.get $0 @@ -28307,11 +28627,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28360,11 +28680,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28414,11 +28734,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28472,7 +28792,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11504 + i32.const 11568 return end local.get $3 @@ -28517,11 +28837,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28537,7 +28857,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 7648 + i32.const 7712 return end global.get $~lib/memory/__stack_pointer @@ -28604,214 +28924,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/string/joinStringArray (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16128 - i32.lt_s - if - i32.const 48928 - i32.const 48976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store $0 - local.get $5 - i32.const 0 - i32.store $0 offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11504 - return - end - local.get $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load $0 - local.tee $0 - i32.store $0 - local.get $1 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 11504 - local.get $0 - select - return - end - loop $for-loop|0 - local.get $1 - local.get $4 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $6 - i32.store $0 offset=4 - local.get $6 - if - local.get $3 - local.get $6 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $3 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - local.get $5 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store $0 offset=8 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $7 - i32.store $0 offset=4 - local.get $7 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $7 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - local.tee $7 - i32.const 1 - i32.shl - memory.copy $0 $0 - local.get $1 - local.get $7 - i32.add - local.set $1 - end - local.get $4 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - memory.copy $0 $0 - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $0 - i32.store $0 offset=4 - local.get $0 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const -2 - i32.and - memory.copy $0 $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) (func $~lib/array/Array<~lib/array/Array>#flat (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -28824,11 +28936,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16128 + i32.const 16192 i32.lt_s if - i32.const 48928 - i32.const 48976 + i32.const 48992 + i32.const 49040 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28839,45 +28951,43 @@ i64.store $0 local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $4 local.get $0 i32.load $0 offset=12 - local.set $4 - i32.const 0 - local.set $0 + local.set $5 loop $for-loop|0 - local.get $0 - local.get $4 + local.get $2 + local.get $5 i32.lt_s if - local.get $3 - local.get $0 + local.get $4 + local.get $2 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $5 + local.tee $0 if (result i32) - local.get $5 + local.get $0 i32.load $0 offset=12 else i32.const 0 end - local.get $2 + local.get $1 i32.add - local.set $2 - local.get $0 + local.set $1 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new local.tee $6 @@ -28889,10 +28999,10 @@ local.tee $0 i32.store $0 offset=4 local.get $0 - local.get $2 + local.get $1 i32.store $0 offset=12 local.get $0 - local.get $5 + local.get $2 i32.store $0 offset=8 local.get $0 local.get $6 @@ -28908,40 +29018,40 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|1 - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.lt_s if + local.get $4 local.get $3 - local.get $2 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $5 + local.tee $2 if local.get $1 local.get $6 i32.add - local.get $5 + local.get $2 i32.load $0 offset=4 - local.get $5 + local.get $2 i32.load $0 offset=12 i32.const 2 i32.shl - local.tee $5 + local.tee $2 memory.copy $0 $0 local.get $1 - local.get $5 + local.get $2 i32.add local.set $1 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index bed1d35231..663fc3a926 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -67,6 +67,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -79,17 +80,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -101,8 +103,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -245,6 +245,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -264,6 +265,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -349,15 +351,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -384,6 +383,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -559,22 +559,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -599,16 +602,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -704,18 +710,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -739,18 +748,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -760,12 +772,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -913,22 +928,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -973,16 +991,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1037,10 +1058,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1156,6 +1180,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1165,15 +1190,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1234,17 +1257,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1256,22 +1277,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1344,6 +1363,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1404,8 +1424,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1450,8 +1468,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1501,8 +1517,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1584,6 +1598,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1662,6 +1677,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1677,6 +1693,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1767,16 +1784,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1809,16 +1829,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1832,46 +1855,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1908,10 +1938,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2031,30 +2064,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2125,6 +2164,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2137,6 +2177,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2199,6 +2240,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2209,6 +2251,7 @@ i32.const 20 i32.sub call $~lib/rt/common/OBJECT#get:rtSize + return ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array|null> (type $i32_=>_i32) (param $value i32) (result i32) i32.const 1 @@ -2245,6 +2288,7 @@ i32.const 0 drop i32.const 0 + return ) (func $~lib/arraybuffer/ArrayBuffer.isView (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 @@ -2274,6 +2318,7 @@ i32.const 0 drop i32.const 0 + return ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array|null> (type $i32_=>_i32) (param $value i32) (result i32) i32.const 1 @@ -2455,6 +2500,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 @@ -2484,6 +2530,7 @@ i32.const 0 drop i32.const 0 + return ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 @@ -2592,8 +2639,6 @@ return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2604,8 +2649,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2619,8 +2662,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -3319,6 +3360,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/arraybuffer/ArrayBuffer#slice (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $length i32) @@ -3426,6 +3468,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $16 + return ) (func $~lib/arraybuffer/ArrayBufferView#constructor (type $i32_i32_i32_=>_i32) (param $this i32) (param $length i32) (param $alignLog2 i32) (result i32) (local $buffer i32) @@ -3586,6 +3629,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/typedarray/Int32Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 4fbc6b480a..7bac5e4e8d 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1511,6 +1511,61 @@ memory.fill $0 local.get $1 ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + ) (func $~lib/rt/__visit_members (type $i32_=>_none) (param $0 i32) block $folding-inner0 block $invalid @@ -1556,6 +1611,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -1851,14 +1908,14 @@ local.get $1 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $1 + local.tee $2 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 + local.get $2 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1875,27 +1932,71 @@ i32.const 8 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.const 1632 i64.load $0 align=1 i64.store $0 align=1 local.get $0 - local.get $2 + local.get $3 i32.store $0 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 - local.get $2 + local.get $3 i32.store $0 - local.get $2 + local.get $3 if local.get $0 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $3 + i32.const 20 + i32.sub + local.tee $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $4 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $4 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end end local.get $0 - local.get $2 + local.get $3 i32.store $0 offset=4 local.get $0 i32.const 8 @@ -1942,7 +2043,7 @@ local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load $0 local.tee $0 i32.store $0 offset=16 @@ -1971,7 +2072,7 @@ i32.store $0 local.get $2 i32.const 0 - i32.store $0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $2 i32.const 0 i32.store $0 offset=4 @@ -1998,13 +2099,7 @@ end local.get $2 local.get $0 - i32.store $0 - local.get $0 - if - local.get $2 - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $2 local.get $0 i32.store $0 offset=4 @@ -2192,7 +2287,7 @@ end local.get $0 i32.const 0 - i32.store $0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 i32.const 0 i32.store $0 offset=4 @@ -2222,13 +2317,7 @@ i32.store $0 offset=4 local.get $0 local.get $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $~lib/arraybuffer/ArrayBufferView#set:buffer local.get $0 local.get $1 i32.store $0 offset=4 @@ -2260,53 +2349,4 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) ) diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index 29acf3df84..09d6ec4d43 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -73,6 +73,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -85,17 +86,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -107,8 +109,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -251,6 +251,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -270,6 +271,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -355,15 +357,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -390,6 +389,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -565,22 +565,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -605,16 +608,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -710,18 +716,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -745,18 +754,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -766,12 +778,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -919,22 +934,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -979,16 +997,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1043,10 +1064,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1162,6 +1186,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1171,15 +1196,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1240,17 +1263,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1262,22 +1283,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1350,6 +1369,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1410,8 +1430,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1456,8 +1474,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1507,8 +1523,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1590,6 +1604,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1668,6 +1683,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1683,6 +1699,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1773,16 +1790,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1815,16 +1835,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1838,46 +1861,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1914,10 +1944,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2037,30 +2070,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2131,6 +2170,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2143,6 +2183,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2205,6 +2246,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2330,6 +2372,7 @@ i32.const 20 i32.sub call $~lib/rt/common/OBJECT#get:rtSize + return ) (func $~lib/dataview/DataView#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -2360,6 +2403,7 @@ local.get $this call $~lib/arraybuffer/ArrayBufferView#get:buffer i32.sub + return ) (func $~lib/dataview/DataView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2415,6 +2459,7 @@ i32.or f32.reinterpret_i32 end + return ) (func $~lib/dataview/DataView#getFloat64 (type $i32_i32_i32_=>_f64) (param $this i32) (param $byteOffset i32) (param $littleEndian i32) (result f64) (local $3 i64) @@ -2476,6 +2521,7 @@ i64.rotr f64.reinterpret_i64 end + return ) (func $~lib/dataview/DataView#getInt8 (type $i32_i32_=>_i32) (param $this i32) (param $byteOffset i32) (result i32) local.get $byteOffset @@ -2495,6 +2541,7 @@ local.get $byteOffset i32.add i32.load8_s $0 + return ) (func $~lib/dataview/DataView#getInt16 (type $i32_i32_i32_=>_i32) (param $this i32) (param $byteOffset i32) (param $littleEndian i32) (result i32) (local $result i32) @@ -2538,6 +2585,7 @@ i32.shr_u i32.or end + return ) (func $~lib/dataview/DataView#getInt32 (type $i32_i32_i32_=>_i32) (param $this i32) (param $byteOffset i32) (param $littleEndian i32) (result i32) (local $result i32) @@ -2583,6 +2631,7 @@ i32.rotr i32.or end + return ) (func $~lib/dataview/DataView#getInt64 (type $i32_i32_i32_=>_i64) (param $this i32) (param $byteOffset i32) (param $littleEndian i32) (result i64) (local $result i64) @@ -2642,6 +2691,7 @@ i64.const 32 i64.rotr end + return ) (func $~lib/dataview/DataView#getUint8 (type $i32_i32_=>_i32) (param $this i32) (param $byteOffset i32) (result i32) local.get $byteOffset @@ -2661,6 +2711,7 @@ local.get $byteOffset i32.add i32.load8_u $0 + return ) (func $~lib/dataview/DataView#getUint16 (type $i32_i32_i32_=>_i32) (param $this i32) (param $byteOffset i32) (param $littleEndian i32) (result i32) (local $result i32) @@ -2702,6 +2753,7 @@ i32.shr_u i32.or end + return ) (func $~lib/dataview/DataView#getUint32 (type $i32_i32_i32_=>_i32) (param $this i32) (param $byteOffset i32) (param $littleEndian i32) (result i32) (local $result i32) @@ -2747,6 +2799,7 @@ i32.rotr i32.or end + return ) (func $~lib/dataview/DataView#getUint64 (type $i32_i32_i32_=>_i64) (param $this i32) (param $byteOffset i32) (param $littleEndian i32) (result i64) (local $result i64) @@ -2806,6 +2859,7 @@ i64.const 32 i64.rotr end + return ) (func $~lib/dataview/DataView#setFloat32 (type $i32_i32_f32_i32_=>_none) (param $this i32) (param $byteOffset i32) (param $value f32) (param $littleEndian i32) (local $4 i32) @@ -3276,10 +3330,9 @@ local.get $this call $~lib/dataview/DataView#get:buffer i32.sub + return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -3290,8 +3343,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -3305,8 +3356,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index d56020cbcf..123038cca8 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -2,8 +2,8 @@ (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) + (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) @@ -175,24 +175,27 @@ i32.le_s i32.sub local.set $y - local.get $y - local.set $a - i32.const 400 - local.set $b - local.get $a - local.get $a - i32.const 0 - i32.lt_s - if (result i32) - local.get $b - i32.const 1 - i32.sub - else + block $~lib/date/floorDiv|inlined.0 (result i32) + local.get $y + local.set $a + i32.const 400 + local.set $b + local.get $a + local.get $a i32.const 0 + i32.lt_s + if (result i32) + local.get $b + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.sub + local.get $b + i32.div_s + br $~lib/date/floorDiv|inlined.0 end - i32.sub - local.get $b - i32.div_s local.set $era local.get $y local.get $era @@ -243,6 +246,7 @@ i32.const 719468 i32.sub i64.extend_i32_s + return ) (func $~lib/date/epochMillis (type $i32_i32_i32_i32_i32_i32_i32_=>_i64) (param $year i32) (param $month i32) (param $day i32) (param $hour i32) (param $minute i32) (param $second i32) (param $milliseconds i32) (result i64) local.get $year @@ -270,6 +274,7 @@ local.get $milliseconds i64.extend_i32_s i64.add + return ) (func $~lib/date/invalidDate (type $i64_=>_i32) (param $millis i64) (result i32) local.get $millis @@ -281,6 +286,7 @@ i64.const 8640000000000000 i64.gt_s i32.or + return ) (func $~lib/date/dateFromEpoch (type $i64_=>_i32) (param $ms i64) (result i32) (local $a i64) @@ -295,25 +301,28 @@ (local $n1 i32) (local $year i32) (local $mo i32) - local.get $ms - local.set $a - i32.const 86400000 - i64.extend_i32_s - local.set $b - local.get $a - local.get $a - i64.const 0 - i64.lt_s - if (result i64) - local.get $b - i64.const 1 - i64.sub - else + block $~lib/date/floorDiv|inlined.0 (result i64) + local.get $ms + local.set $a + i32.const 86400000 + i64.extend_i32_s + local.set $b + local.get $a + local.get $a i64.const 0 + i64.lt_s + if (result i64) + local.get $b + i64.const 1 + i64.sub + else + i64.const 0 + end + i64.sub + local.get $b + i64.div_s + br $~lib/date/floorDiv|inlined.0 end - i64.sub - local.get $b - i64.div_s i32.wrap_i64 i32.const 4 i32.mul @@ -324,24 +333,27 @@ i32.const 3 i32.or local.set $da - local.get $da - local.set $a|4 - i32.const 146097 - local.set $b|5 - local.get $a|4 - local.get $a|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|5 - i32.const 1 - i32.sub - else + block $~lib/date/floorDiv|inlined.1 (result i32) + local.get $da + local.set $a|4 + i32.const 146097 + local.set $b|5 + local.get $a|4 + local.get $a|4 i32.const 0 + i32.lt_s + if (result i32) + local.get $b|5 + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.sub + local.get $b|5 + i32.div_s + br $~lib/date/floorDiv|inlined.1 end - i32.sub - local.get $b|5 - i32.div_s local.set $q0 local.get $da local.get $q0 @@ -404,6 +416,7 @@ local.get $mo global.set $~lib/date/_month local.get $year + return ) (func $~lib/date/Date#set:year (type $i32_i32_=>_none) (param $this i32) (param $year i32) local.get $this @@ -438,6 +451,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -450,17 +464,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -472,8 +487,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -616,6 +629,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -635,6 +649,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -720,15 +735,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -755,6 +767,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -930,22 +943,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -970,16 +986,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -1075,18 +1094,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1110,18 +1132,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1131,12 +1156,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1284,22 +1312,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1344,16 +1375,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1408,10 +1442,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1527,6 +1564,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1536,15 +1574,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1605,17 +1641,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1627,22 +1661,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1715,6 +1747,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1775,8 +1808,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1821,8 +1852,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1872,8 +1901,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1955,6 +1982,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -2033,6 +2061,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -2048,6 +2077,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -2138,16 +2168,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2180,16 +2213,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2203,46 +2239,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2279,11 +2322,14 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 - i32.ne + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + i32.ne i32.shl i32.add local.set $size @@ -2402,30 +2448,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2496,6 +2548,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2508,6 +2561,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2570,6 +2624,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/date/Date#set:epochMillis (type $i32_i64_=>_none) (param $this i32) (param $epochMillis i64) local.get $this @@ -2605,6 +2660,7 @@ global.get $~lib/date/_day call $~lib/date/Date#set:day local.get $time + return ) (func $~lib/date/Date#get:year (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2622,111 +2678,127 @@ (local $a i64) (local $b i64) (local $m i64) - local.get $this - call $~lib/date/Date#get:epochMillis - local.set $a - i32.const 86400000 - i64.extend_i32_s - local.set $b - local.get $a - local.get $b - i64.rem_s - local.set $m - local.get $m - local.get $m - i64.const 0 - i64.lt_s - if (result i64) + block $~lib/date/euclidRem|inlined.0 (result i64) + local.get $this + call $~lib/date/Date#get:epochMillis + local.set $a + i32.const 86400000 + i64.extend_i32_s + local.set $b + local.get $a local.get $b - else + i64.rem_s + local.set $m + local.get $m + local.get $m i64.const 0 + i64.lt_s + if (result i64) + local.get $b + else + i64.const 0 + end + i64.add + br $~lib/date/euclidRem|inlined.0 end - i64.add i32.wrap_i64 i32.const 3600000 i32.div_s + return ) (func $~lib/date/Date#getUTCMinutes (type $i32_=>_i32) (param $this i32) (result i32) (local $a i64) (local $b i64) (local $m i64) - local.get $this - call $~lib/date/Date#get:epochMillis - local.set $a - i32.const 3600000 - i64.extend_i32_s - local.set $b - local.get $a - local.get $b - i64.rem_s - local.set $m - local.get $m - local.get $m - i64.const 0 - i64.lt_s - if (result i64) + block $~lib/date/euclidRem|inlined.1 (result i64) + local.get $this + call $~lib/date/Date#get:epochMillis + local.set $a + i32.const 3600000 + i64.extend_i32_s + local.set $b + local.get $a local.get $b - else + i64.rem_s + local.set $m + local.get $m + local.get $m i64.const 0 + i64.lt_s + if (result i64) + local.get $b + else + i64.const 0 + end + i64.add + br $~lib/date/euclidRem|inlined.1 end - i64.add i32.wrap_i64 i32.const 60000 i32.div_s + return ) (func $~lib/date/Date#getUTCSeconds (type $i32_=>_i32) (param $this i32) (result i32) (local $a i64) (local $b i64) (local $m i64) - local.get $this - call $~lib/date/Date#get:epochMillis - local.set $a - i32.const 60000 - i64.extend_i32_s - local.set $b - local.get $a - local.get $b - i64.rem_s - local.set $m - local.get $m - local.get $m - i64.const 0 - i64.lt_s - if (result i64) + block $~lib/date/euclidRem|inlined.2 (result i64) + local.get $this + call $~lib/date/Date#get:epochMillis + local.set $a + i32.const 60000 + i64.extend_i32_s + local.set $b + local.get $a local.get $b - else + i64.rem_s + local.set $m + local.get $m + local.get $m i64.const 0 + i64.lt_s + if (result i64) + local.get $b + else + i64.const 0 + end + i64.add + br $~lib/date/euclidRem|inlined.2 end - i64.add i32.wrap_i64 i32.const 1000 i32.div_s + return ) (func $~lib/date/Date#getUTCMilliseconds (type $i32_=>_i32) (param $this i32) (result i32) (local $a i64) (local $b i64) (local $m i64) - local.get $this - call $~lib/date/Date#get:epochMillis - local.set $a - i32.const 1000 - i64.extend_i32_s - local.set $b - local.get $a - local.get $b - i64.rem_s - local.set $m - local.get $m - local.get $m - i64.const 0 - i64.lt_s - if (result i64) + block $~lib/date/euclidRem|inlined.3 (result i64) + local.get $this + call $~lib/date/Date#get:epochMillis + local.set $a + i32.const 1000 + i64.extend_i32_s + local.set $b + local.get $a local.get $b - else + i64.rem_s + local.set $m + local.get $m + local.get $m i64.const 0 + i64.lt_s + if (result i64) + local.get $b + else + i64.const 0 + end + i64.add + br $~lib/date/euclidRem|inlined.3 end - i64.add i32.wrap_i64 + return ) (func $~lib/date/Date#setUTCMilliseconds (type $i32_i32_=>_none) (param $this i32) (param $millis i32) local.get $this @@ -2797,26 +2869,30 @@ i32.const 86400000 i64.extend_i32_s i64.mul - local.get $ms - local.set $a - i32.const 86400000 - i64.extend_i32_s - local.set $b - local.get $a - local.get $b - i64.rem_s - local.set $m - local.get $m - local.get $m - i64.const 0 - i64.lt_s - if (result i64) + block $~lib/date/euclidRem|inlined.4 (result i64) + local.get $ms + local.set $a + i32.const 86400000 + i64.extend_i32_s + local.set $b + local.get $a local.get $b - else + i64.rem_s + local.set $m + local.get $m + local.get $m i64.const 0 + i64.lt_s + if (result i64) + local.get $b + else + i64.const 0 + end + i64.add + br $~lib/date/euclidRem|inlined.4 end i64.add - i64.add + return ) (func $~lib/date/Date#setUTCDate (type $i32_i32_=>_none) (param $this i32) (param $day i32) local.get $this @@ -2918,61 +2994,70 @@ i32.sub local.set $year local.get $year - local.get $year - local.set $a - i32.const 4 - local.set $b - local.get $a - local.get $a - i32.const 0 - i32.lt_s - if (result i32) - local.get $b - i32.const 1 - i32.sub - else + block $~lib/date/floorDiv|inlined.2 (result i32) + local.get $year + local.set $a + i32.const 4 + local.set $b + local.get $a + local.get $a i32.const 0 - end - i32.sub - local.get $b - i32.div_s - local.get $year - local.set $a|5 - i32.const 100 - local.set $b|6 - local.get $a|5 - local.get $a|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|6 - i32.const 1 + i32.lt_s + if (result i32) + local.get $b + i32.const 1 + i32.sub + else + i32.const 0 + end i32.sub - else + local.get $b + i32.div_s + br $~lib/date/floorDiv|inlined.2 + end + block $~lib/date/floorDiv|inlined.3 (result i32) + local.get $year + local.set $a|5 + i32.const 100 + local.set $b|6 + local.get $a|5 + local.get $a|5 i32.const 0 + i32.lt_s + if (result i32) + local.get $b|6 + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.sub + local.get $b|6 + i32.div_s + br $~lib/date/floorDiv|inlined.3 end i32.sub - local.get $b|6 - i32.div_s - i32.sub - local.get $year - local.set $a|7 - i32.const 400 - local.set $b|8 - local.get $a|7 - local.get $a|7 - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|8 - i32.const 1 - i32.sub - else + block $~lib/date/floorDiv|inlined.4 (result i32) + local.get $year + local.set $a|7 + i32.const 400 + local.set $b|8 + local.get $a|7 + local.get $a|7 i32.const 0 + i32.lt_s + if (result i32) + local.get $b|8 + i32.const 1 + i32.sub + else + i32.const 0 + end + i32.sub + local.get $b|8 + i32.div_s + br $~lib/date/floorDiv|inlined.4 end - i32.sub - local.get $b|8 - i32.div_s i32.add i32.add local.set $year @@ -2983,28 +3068,32 @@ i32.sub i32.load8_u $0 local.set $month - local.get $year - local.get $month - i32.add - local.get $day - i32.add - local.set $a|9 - i32.const 7 - local.set $b|10 - local.get $a|9 - local.get $b|10 - i32.rem_s - local.set $m - local.get $m - local.get $m - i32.const 0 - i32.lt_s - if (result i32) + block $~lib/date/euclidRem|inlined.0 (result i32) + local.get $year + local.get $month + i32.add + local.get $day + i32.add + local.set $a|9 + i32.const 7 + local.set $b|10 + local.get $a|9 local.get $b|10 - else + i32.rem_s + local.set $m + local.get $m + local.get $m i32.const 0 + i32.lt_s + if (result i32) + local.get $b|10 + else + i32.const 0 + end + i32.add + br $~lib/date/euclidRem|inlined.0 end - i32.add + return ) (func $~lib/util/number/decimalCount32 (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -3062,24 +3151,21 @@ unreachable ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -3138,19 +3224,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 860 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -3178,13 +3264,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -3205,13 +3291,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -3259,14 +3342,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -3293,8 +3377,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -3315,8 +3397,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -3332,6 +3412,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -3428,6 +3509,7 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3440,11 +3522,11 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/memory/memory.repeat (type $i32_i32_i32_i32_=>_none) (param $dst i32) (param $src i32) (param $srcLength i32) (param $count i32) (local $index i32) (local $total i32) - (local $6 i32) i32.const 0 local.set $index local.get $srcLength @@ -3455,8 +3537,6 @@ local.get $index local.get $total i32.lt_u - local.set $6 - local.get $6 if local.get $dst local.get $index @@ -3476,6 +3556,7 @@ local.get $left local.get $right call $~lib/string/String#concat + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -3567,6 +3648,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u + return ) (func $~lib/staticarray/StaticArray<~lib/string/String>#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) i32.const 0 @@ -3592,7 +3674,6 @@ (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -3663,8 +3744,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -3693,6 +3772,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -3735,6 +3815,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -3750,6 +3831,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this @@ -3758,6 +3840,7 @@ i32.shl i32.add i32.load $0 + return ) (func $~lib/string/String#indexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $start i32) (result i32) (local $searchLen i32) @@ -3767,7 +3850,6 @@ (local $7 i32) (local $8 i32) (local $searchStart i32) - (local $10 i32) local.get $search call $~lib/string/String#get:length local.set $searchLen @@ -3810,8 +3892,6 @@ local.get $searchStart local.get $len i32.le_s - local.set $10 - local.get $10 if local.get $this local.get $searchStart @@ -3832,6 +3912,26 @@ end end i32.const -1 + return + ) + (func $~lib/string/String#substring@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $start + local.get $end + call $~lib/string/String#substring ) (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3913,6 +4013,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -4048,10 +4149,33 @@ local.get $len call $~lib/array/Array<~lib/string/String>#set:length_ local.get $len + return + ) + (func $~lib/string/String#split@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $separator i32) (param $limit i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $separator + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $limit + end + local.get $this + local.get $separator + local.get $limit + call $~lib/string/String#split ) (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array<~lib/string/String>#get:length_ + return ) (func $~lib/util/string/isSpace (type $i32_=>_i32) (param $c i32) (result i32) (local $1 i32) @@ -4138,18 +4262,17 @@ return end i32.const 0 + return ) (func $~lib/util/string/strtol (type $i32_i32_=>_i32) (param $str i32) (param $radix i32) (result i32) (local $len i32) (local $ptr i32) (local $code i32) - (local $5 i32) (local $sign i32) - (local $7 i32) + (local $6 i32) (local $num i32) (local $initial i32) - (local $10 i32) - (local $11 i32) + (local $9 i32) local.get $str call $~lib/string/String#get:length local.set $len @@ -4169,8 +4292,6 @@ loop $while-continue|0 local.get $code call $~lib/util/string/isSpace - local.set $5 - local.get $5 if local.get $ptr i32.const 2 @@ -4296,16 +4417,16 @@ i32.load16_u $0 offset=2 i32.const 32 i32.or - local.set $7 - local.get $7 + local.set $6 + local.get $6 i32.const 98 i32.eq br_if $case0|1 - local.get $7 + local.get $6 i32.const 111 i32.eq br_if $case1|1 - local.get $7 + local.get $6 i32.const 120 i32.eq br_if $case2|1 @@ -4364,13 +4485,11 @@ block $while-break|2 loop $while-continue|2 local.get $len - local.tee $10 + local.tee $9 i32.const 1 i32.sub local.set $len - local.get $10 - local.set $11 - local.get $11 + local.get $9 if local.get $ptr i32.load16_u $0 @@ -4450,11 +4569,13 @@ local.get $sign local.get $num i32.mul + return ) (func $~lib/number/I32.parseInt (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) local.get $value local.get $radix call $~lib/util/string/strtol + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -4500,7 +4621,6 @@ (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -4517,8 +4637,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -4552,7 +4670,6 @@ (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -4570,8 +4687,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -4722,6 +4837,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $~lib/date/Date#toISOString (type $i32_=>_i32) (param $this i32) (result i32) (local $yr i32) @@ -4942,6 +5058,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/date/Date#toDateString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -5118,6 +5235,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $20 + return ) (func $~lib/date/Date#toTimeString (type $i32_=>_i32) (param $this i32) (result i32) (local $hours i32) @@ -5209,6 +5327,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/date/Date#toUTCString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -5445,6 +5564,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $26 + return ) (func $~lib/string/String#split (type $i32_i32_i32_=>_i32) (param $this i32) (param $separator i32) (param $limit i32) (result i32) (local $3 i32) @@ -5456,19 +5576,17 @@ (local $result i32) (local $resultStart i32) (local $i i32) - (local $12 i32) (local $charStr i32) + (local $result|13 i32) (local $result|14 i32) - (local $result|15 i32) (local $end i32) (local $start i32) - (local $i|18 i32) - (local $19 i32) + (local $i|17 i32) (local $len i32) (local $out i32) - (local $len|22 i32) - (local $out|23 i32) - (local $24 i32) + (local $len|20 i32) + (local $out|21 i32) + (local $22 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -5486,12 +5604,12 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $separator @@ -5516,12 +5634,12 @@ local.get $this call $~lib/array/Array<~lib/string/String>#__uset local.get $3 - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $this @@ -5548,12 +5666,12 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $length @@ -5582,8 +5700,6 @@ local.get $i local.get $length i32.lt_s - local.set $12 - local.get $12 if global.get $~lib/memory/__stack_pointer i32.const 2 @@ -5618,12 +5734,12 @@ end end local.get $result - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return else local.get $length @@ -5635,19 +5751,19 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $result|14 + local.tee $result|13 i32.store $0 offset=16 - local.get $result|14 + local.get $result|13 call $~lib/array/Array<~lib/string/String>#get:dataStart i32.const 2432 i32.store $0 - local.get $result|14 - local.set $24 + local.get $result|13 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end end @@ -5657,14 +5773,14 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $result|15 + local.tee $result|14 i32.store $0 offset=20 i32.const 0 local.set $end i32.const 0 local.set $start i32.const 0 - local.set $i|18 + local.set $i|17 loop $while-continue|1 local.get $this local.get $separator @@ -5673,8 +5789,6 @@ local.tee $end i32.const -1 i32.xor - local.set $19 - local.get $19 if local.get $end local.get $start @@ -5702,35 +5816,35 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $result|15 + local.get $result|14 local.get $out call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|15 + local.get $result|14 i32.const 2432 - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer - local.get $24 + local.get $22 i32.store $0 offset=28 - local.get $24 + local.get $22 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $i|18 + local.get $i|17 i32.const 1 i32.add - local.tee $i|18 + local.tee $i|17 local.get $limit i32.eq if - local.get $result|15 - local.set $24 + local.get $result|14 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $end @@ -5743,67 +5857,68 @@ local.get $start i32.eqz if - local.get $result|15 + local.get $result|14 local.get $this call $~lib/array/Array<~lib/string/String>#push drop - local.get $result|15 - local.set $24 + local.get $result|14 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $length local.get $start i32.sub - local.set $len|22 - local.get $len|22 + local.set $len|20 + local.get $len|20 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $len|22 + local.get $len|20 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $out|23 + local.tee $out|21 i32.store $0 offset=32 - local.get $out|23 + local.get $out|21 local.get $this local.get $start i32.const 1 i32.shl i32.add - local.get $len|22 + local.get $len|20 i32.const 1 i32.shl memory.copy $0 $0 - local.get $result|15 - local.get $out|23 + local.get $result|14 + local.get $out|21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|15 + local.get $result|14 i32.const 2432 - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer - local.get $24 + local.get $22 i32.store $0 offset=28 - local.get $24 + local.get $22 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $result|15 - local.set $24 + local.get $result|14 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 + return ) (func $~lib/date/Date.fromString (type $i32_=>_i32) (param $dateTimeString i32) (result i32) (local $hour i32) @@ -5879,8 +5994,10 @@ local.get $posT i32.const 1 i32.add - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs local.tee $timeString i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer @@ -5891,8 +6008,10 @@ local.get $17 i32.store $0 local.get $17 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $timeParts i32.store $0 offset=12 local.get $timeParts @@ -5971,8 +6090,10 @@ local.get $posDot i32.const 1 i32.add - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs local.set $17 global.get $~lib/memory/__stack_pointer local.get $17 @@ -5997,8 +6118,10 @@ local.get $17 i32.store $0 local.get $17 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $parts i32.store $0 offset=24 local.get $parts @@ -6067,6 +6190,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $start:std/date (type $none_=>_none) (local $0 i32) @@ -6235,58 +6359,61 @@ i32.const 0 i32.const 116 memory.fill $0 - i32.const 1970 - local.set $0 - i32.const 0 - local.set $1 - i32.const 1 - local.set $2 - i32.const 0 - local.set $3 - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - i32.const 0 - local.set $6 - local.get $0 - i32.const 0 - i32.ge_s - if (result i32) + block $~lib/date/Date.UTC|inlined.0 (result i64) + i32.const 1970 + local.set $0 + i32.const 0 + local.set $1 + i32.const 1 + local.set $2 + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + i32.const 0 + local.set $6 local.get $0 - i32.const 99 - i32.le_s - else i32.const 0 - end - if + i32.ge_s + if (result i32) + local.get $0 + i32.const 99 + i32.le_s + else + i32.const 0 + end + if + local.get $0 + i32.const 1900 + i32.add + local.set $0 + end local.get $0 - i32.const 1900 + local.get $1 + i32.const 1 i32.add - local.set $0 - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.get $2 - local.get $3 - local.get $4 - local.get $5 - local.get $6 - call $~lib/date/epochMillis - local.set $7 - local.get $7 - call $~lib/date/invalidDate - if - i32.const 32 - i32.const 80 - i32.const 36 - i32.const 26 - call $~lib/builtins/abort - unreachable + local.get $2 + local.get $3 + local.get $4 + local.get $5 + local.get $6 + call $~lib/date/epochMillis + local.set $7 + local.get $7 + call $~lib/date/invalidDate + if + i32.const 32 + i32.const 80 + i32.const 36 + i32.const 26 + call $~lib/builtins/abort + unreachable + end + local.get $7 + br $~lib/date/Date.UTC|inlined.0 end - local.get $7 i64.const 0 i64.eq i32.eqz @@ -6298,58 +6425,61 @@ call $~lib/builtins/abort unreachable end - i32.const 1970 - local.set $8 - i32.const 0 - local.set $9 - i32.const 1 - local.set $10 - i32.const 0 - local.set $11 - i32.const 0 - local.set $12 - i32.const 0 - local.set $13 - i32.const 0 - local.set $14 - local.get $8 - i32.const 0 - i32.ge_s - if (result i32) + block $~lib/date/Date.UTC|inlined.1 (result i64) + i32.const 1970 + local.set $8 + i32.const 0 + local.set $9 + i32.const 1 + local.set $10 + i32.const 0 + local.set $11 + i32.const 0 + local.set $12 + i32.const 0 + local.set $13 + i32.const 0 + local.set $14 local.get $8 - i32.const 99 - i32.le_s - else i32.const 0 - end - if + i32.ge_s + if (result i32) + local.get $8 + i32.const 99 + i32.le_s + else + i32.const 0 + end + if + local.get $8 + i32.const 1900 + i32.add + local.set $8 + end local.get $8 - i32.const 1900 + local.get $9 + i32.const 1 i32.add - local.set $8 + local.get $10 + local.get $11 + local.get $12 + local.get $13 + local.get $14 + call $~lib/date/epochMillis + local.set $15 + local.get $15 + call $~lib/date/invalidDate + if + i32.const 32 + i32.const 80 + i32.const 36 + i32.const 26 + call $~lib/builtins/abort + unreachable + end + local.get $15 + br $~lib/date/Date.UTC|inlined.1 end - local.get $8 - local.get $9 - i32.const 1 - i32.add - local.get $10 - local.get $11 - local.get $12 - local.get $13 - local.get $14 - call $~lib/date/epochMillis - local.set $15 - local.get $15 - call $~lib/date/invalidDate - if - i32.const 32 - i32.const 80 - i32.const 36 - i32.const 26 - call $~lib/builtins/abort - unreachable - end - local.get $15 i64.const 0 i64.eq i32.eqz @@ -6361,58 +6491,61 @@ call $~lib/builtins/abort unreachable end - i32.const 70 - local.set $16 - i32.const 0 - local.set $17 - i32.const 1 - local.set $18 - i32.const 0 - local.set $19 - i32.const 0 - local.set $20 - i32.const 0 - local.set $21 - i32.const 0 - local.set $22 - local.get $16 - i32.const 0 - i32.ge_s - if (result i32) + block $~lib/date/Date.UTC|inlined.2 (result i64) + i32.const 70 + local.set $16 + i32.const 0 + local.set $17 + i32.const 1 + local.set $18 + i32.const 0 + local.set $19 + i32.const 0 + local.set $20 + i32.const 0 + local.set $21 + i32.const 0 + local.set $22 local.get $16 - i32.const 99 - i32.le_s - else i32.const 0 - end - if + i32.ge_s + if (result i32) + local.get $16 + i32.const 99 + i32.le_s + else + i32.const 0 + end + if + local.get $16 + i32.const 1900 + i32.add + local.set $16 + end local.get $16 - i32.const 1900 + local.get $17 + i32.const 1 i32.add - local.set $16 - end - local.get $16 - local.get $17 - i32.const 1 - i32.add - local.get $18 - local.get $19 - local.get $20 - local.get $21 - local.get $22 - call $~lib/date/epochMillis - local.set $23 - local.get $23 - call $~lib/date/invalidDate - if - i32.const 32 - i32.const 80 - i32.const 36 - i32.const 26 - call $~lib/builtins/abort - unreachable + local.get $18 + local.get $19 + local.get $20 + local.get $21 + local.get $22 + call $~lib/date/epochMillis + local.set $23 + local.get $23 + call $~lib/date/invalidDate + if + i32.const 32 + i32.const 80 + i32.const 36 + i32.const 26 + call $~lib/builtins/abort + unreachable + end + local.get $23 + br $~lib/date/Date.UTC|inlined.2 end - local.get $23 i64.const 0 i64.eq i32.eqz @@ -6424,58 +6557,61 @@ call $~lib/builtins/abort unreachable end - i32.const 90 - local.set $24 - i32.const 0 - local.set $25 - i32.const 1 - local.set $26 - i32.const 0 - local.set $27 - i32.const 0 - local.set $28 - i32.const 0 - local.set $29 - i32.const 0 - local.set $30 - local.get $24 - i32.const 0 - i32.ge_s - if (result i32) + block $~lib/date/Date.UTC|inlined.3 (result i64) + i32.const 90 + local.set $24 + i32.const 0 + local.set $25 + i32.const 1 + local.set $26 + i32.const 0 + local.set $27 + i32.const 0 + local.set $28 + i32.const 0 + local.set $29 + i32.const 0 + local.set $30 local.get $24 - i32.const 99 - i32.le_s - else i32.const 0 - end - if + i32.ge_s + if (result i32) + local.get $24 + i32.const 99 + i32.le_s + else + i32.const 0 + end + if + local.get $24 + i32.const 1900 + i32.add + local.set $24 + end local.get $24 - i32.const 1900 + local.get $25 + i32.const 1 i32.add - local.set $24 - end - local.get $24 - local.get $25 - i32.const 1 - i32.add - local.get $26 - local.get $27 - local.get $28 - local.get $29 - local.get $30 - call $~lib/date/epochMillis - local.set $31 - local.get $31 - call $~lib/date/invalidDate - if - i32.const 32 - i32.const 80 - i32.const 36 - i32.const 26 - call $~lib/builtins/abort - unreachable + local.get $26 + local.get $27 + local.get $28 + local.get $29 + local.get $30 + call $~lib/date/epochMillis + local.set $31 + local.get $31 + call $~lib/date/invalidDate + if + i32.const 32 + i32.const 80 + i32.const 36 + i32.const 26 + call $~lib/builtins/abort + unreachable + end + local.get $31 + br $~lib/date/Date.UTC|inlined.3 end - local.get $31 i64.const 631152000000 i64.eq i32.eqz @@ -6487,58 +6623,61 @@ call $~lib/builtins/abort unreachable end - i32.const -90 - local.set $32 - i32.const 0 - local.set $33 - i32.const 1 - local.set $34 - i32.const 0 - local.set $35 - i32.const 0 - local.set $36 - i32.const 0 - local.set $37 - i32.const 0 - local.set $38 - local.get $32 - i32.const 0 - i32.ge_s - if (result i32) + block $~lib/date/Date.UTC|inlined.4 (result i64) + i32.const -90 + local.set $32 + i32.const 0 + local.set $33 + i32.const 1 + local.set $34 + i32.const 0 + local.set $35 + i32.const 0 + local.set $36 + i32.const 0 + local.set $37 + i32.const 0 + local.set $38 local.get $32 - i32.const 99 - i32.le_s - else i32.const 0 - end - if + i32.ge_s + if (result i32) + local.get $32 + i32.const 99 + i32.le_s + else + i32.const 0 + end + if + local.get $32 + i32.const 1900 + i32.add + local.set $32 + end local.get $32 - i32.const 1900 + local.get $33 + i32.const 1 i32.add - local.set $32 - end - local.get $32 - local.get $33 - i32.const 1 - i32.add - local.get $34 - local.get $35 - local.get $36 - local.get $37 - local.get $38 - call $~lib/date/epochMillis - local.set $39 - local.get $39 - call $~lib/date/invalidDate - if - i32.const 32 - i32.const 80 - i32.const 36 - i32.const 26 - call $~lib/builtins/abort - unreachable + local.get $34 + local.get $35 + local.get $36 + local.get $37 + local.get $38 + call $~lib/date/epochMillis + local.set $39 + local.get $39 + call $~lib/date/invalidDate + if + i32.const 32 + i32.const 80 + i32.const 36 + i32.const 26 + call $~lib/builtins/abort + unreachable + end + local.get $39 + br $~lib/date/Date.UTC|inlined.4 end - local.get $39 i64.const -65007360000000 i64.eq i32.eqz @@ -6550,58 +6689,61 @@ call $~lib/builtins/abort unreachable end - i32.const 2018 - local.set $40 - i32.const 10 - local.set $41 - i32.const 10 - local.set $42 - i32.const 11 - local.set $43 - i32.const 0 - local.set $44 - i32.const 0 - local.set $45 - i32.const 1 - local.set $46 - local.get $40 - i32.const 0 - i32.ge_s - if (result i32) + block $~lib/date/Date.UTC|inlined.5 (result i64) + i32.const 2018 + local.set $40 + i32.const 10 + local.set $41 + i32.const 10 + local.set $42 + i32.const 11 + local.set $43 + i32.const 0 + local.set $44 + i32.const 0 + local.set $45 + i32.const 1 + local.set $46 local.get $40 - i32.const 99 - i32.le_s - else i32.const 0 - end - if + i32.ge_s + if (result i32) + local.get $40 + i32.const 99 + i32.le_s + else + i32.const 0 + end + if + local.get $40 + i32.const 1900 + i32.add + local.set $40 + end local.get $40 - i32.const 1900 + local.get $41 + i32.const 1 i32.add - local.set $40 - end - local.get $40 - local.get $41 - i32.const 1 - i32.add - local.get $42 - local.get $43 - local.get $44 - local.get $45 - local.get $46 - call $~lib/date/epochMillis - local.set $47 - local.get $47 - call $~lib/date/invalidDate - if - i32.const 32 - i32.const 80 - i32.const 36 - i32.const 26 - call $~lib/builtins/abort - unreachable + local.get $42 + local.get $43 + local.get $44 + local.get $45 + local.get $46 + call $~lib/date/epochMillis + local.set $47 + local.get $47 + call $~lib/date/invalidDate + if + i32.const 32 + i32.const 80 + i32.const 36 + i32.const 26 + call $~lib/builtins/abort + unreachable + end + local.get $47 + br $~lib/date/Date.UTC|inlined.5 end - local.get $47 i64.const 1541847600001 i64.eq i32.eqz @@ -6613,58 +6755,61 @@ call $~lib/builtins/abort unreachable end - i32.const 275760 - local.set $48 - i32.const 8 - local.set $49 - i32.const 13 - local.set $50 - i32.const 0 - local.set $51 - i32.const 0 - local.set $52 - i32.const 0 - local.set $53 - i32.const 0 - local.set $54 - local.get $48 - i32.const 0 - i32.ge_s - if (result i32) + block $~lib/date/Date.UTC|inlined.6 (result i64) + i32.const 275760 + local.set $48 + i32.const 8 + local.set $49 + i32.const 13 + local.set $50 + i32.const 0 + local.set $51 + i32.const 0 + local.set $52 + i32.const 0 + local.set $53 + i32.const 0 + local.set $54 local.get $48 - i32.const 99 - i32.le_s - else i32.const 0 - end - if + i32.ge_s + if (result i32) + local.get $48 + i32.const 99 + i32.le_s + else + i32.const 0 + end + if + local.get $48 + i32.const 1900 + i32.add + local.set $48 + end local.get $48 - i32.const 1900 + local.get $49 + i32.const 1 i32.add - local.set $48 - end - local.get $48 - local.get $49 - i32.const 1 - i32.add - local.get $50 - local.get $51 - local.get $52 - local.get $53 - local.get $54 - call $~lib/date/epochMillis - local.set $55 - local.get $55 - call $~lib/date/invalidDate - if - i32.const 32 - i32.const 80 - i32.const 36 - i32.const 26 - call $~lib/builtins/abort - unreachable + local.get $50 + local.get $51 + local.get $52 + local.get $53 + local.get $54 + call $~lib/date/epochMillis + local.set $55 + local.get $55 + call $~lib/date/invalidDate + if + i32.const 32 + i32.const 80 + i32.const 36 + i32.const 26 + call $~lib/builtins/abort + unreachable + end + local.get $55 + br $~lib/date/Date.UTC|inlined.6 end - local.get $55 i64.const 8640000000000000 i64.eq i32.eqz @@ -6701,10 +6846,13 @@ call $~lib/date/Date#constructor local.tee $57 i32.store $0 - local.get $57 - local.set $58 - local.get $58 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.0 (result i64) + local.get $57 + local.set $58 + local.get $58 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.0 + end local.get $56 i64.eq i32.eqz @@ -6722,10 +6870,13 @@ i64.add call $~lib/date/Date#setTime drop - local.get $57 - local.set $59 - local.get $59 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.1 (result i64) + local.get $57 + local.set $59 + local.get $59 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.1 + end local.get $56 i64.const 1 i64.add @@ -6745,10 +6896,13 @@ call $~lib/date/Date#constructor local.tee $60 i32.store $0 offset=4 - local.get $60 - local.set $61 - local.get $61 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.0 (result i32) + local.get $60 + local.set $61 + local.get $61 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.0 + end i32.const 189512 i32.eq i32.eqz @@ -6760,12 +6914,15 @@ call $~lib/builtins/abort unreachable end - local.get $60 - local.set $62 - local.get $62 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.0 (result i32) + local.get $60 + local.set $62 + local.get $62 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.0 + end i32.const 11 i32.eq i32.eqz @@ -6777,10 +6934,13 @@ call $~lib/builtins/abort unreachable end - local.get $60 - local.set $63 - local.get $63 - call $~lib/date/Date#get:day + block $~lib/date/Date#getUTCDate|inlined.0 (result i32) + local.get $60 + local.set $63 + local.get $63 + call $~lib/date/Date#get:day + br $~lib/date/Date#getUTCDate|inlined.0 + end i32.const 14 i32.eq i32.eqz @@ -6850,10 +7010,13 @@ call $~lib/date/Date#constructor local.tee $64 i32.store $0 offset=8 - local.get $64 - local.set $65 - local.get $65 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.1 (result i32) + local.get $64 + local.set $65 + local.get $65 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.1 + end i32.const 1973 i32.eq i32.eqz @@ -6865,12 +7028,15 @@ call $~lib/builtins/abort unreachable end - local.get $64 - local.set $66 - local.get $66 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.1 (result i32) + local.get $64 + local.set $66 + local.get $66 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.1 + end i32.const 11 i32.eq i32.eqz @@ -6882,10 +7048,13 @@ call $~lib/builtins/abort unreachable end - local.get $64 - local.set $67 - local.get $67 - call $~lib/date/Date#get:day + block $~lib/date/Date#getUTCDate|inlined.1 (result i32) + local.get $64 + local.set $67 + local.get $67 + call $~lib/date/Date#get:day + br $~lib/date/Date#getUTCDate|inlined.1 + end i32.const 4 i32.eq i32.eqz @@ -7003,10 +7172,13 @@ local.get $68 i32.const 0 call $~lib/date/Date#setUTCMilliseconds - local.get $68 - local.set $69 - local.get $69 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.2 (result i64) + local.get $68 + local.set $69 + local.get $69 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.2 + end i64.const 399464523963000 i64.eq i32.eqz @@ -7021,10 +7193,13 @@ local.get $68 i32.const 999 call $~lib/date/Date#setUTCMilliseconds - local.get $68 - local.set $70 - local.get $70 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.3 (result i64) + local.get $68 + local.set $70 + local.get $70 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.3 + end i64.const 399464523963999 i64.eq i32.eqz @@ -7052,10 +7227,13 @@ call $~lib/builtins/abort unreachable end - local.get $68 - local.set $71 - local.get $71 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.4 (result i64) + local.get $68 + local.set $71 + local.get $71 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.4 + end i64.const 399464523965000 i64.eq i32.eqz @@ -7083,10 +7261,13 @@ call $~lib/builtins/abort unreachable end - local.get $68 - local.set $72 - local.get $72 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.5 (result i64) + local.get $68 + local.set $72 + local.get $72 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.5 + end i64.const 399464523963000 i64.eq i32.eqz @@ -7152,10 +7333,13 @@ local.get $73 i32.const 0 call $~lib/date/Date#setUTCSeconds - local.get $73 - local.set $74 - local.get $74 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.6 (result i64) + local.get $73 + local.set $74 + local.get $74 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.6 + end i64.const 372027318300986 i64.eq i32.eqz @@ -7170,10 +7354,13 @@ local.get $73 i32.const 59 call $~lib/date/Date#setUTCSeconds - local.get $73 - local.set $75 - local.get $75 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.7 (result i64) + local.get $73 + local.set $75 + local.get $75 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.7 + end i64.const 372027318359986 i64.eq i32.eqz @@ -7239,10 +7426,13 @@ local.get $76 i32.const 0 call $~lib/date/Date#setUTCMinutes - local.get $76 - local.set $77 - local.get $77 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.8 (result i64) + local.get $76 + local.set $77 + local.get $77 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.8 + end i64.const 372027315631986 i64.eq i32.eqz @@ -7257,10 +7447,13 @@ local.get $76 i32.const 59 call $~lib/date/Date#setUTCMinutes - local.get $76 - local.set $78 - local.get $78 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.9 (result i64) + local.get $76 + local.set $78 + local.get $78 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.9 + end i64.const 372027319171986 i64.eq i32.eqz @@ -7326,10 +7519,13 @@ local.get $79 i32.const 0 call $~lib/date/Date#setUTCHours - local.get $79 - local.set $80 - local.get $80 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.10 (result i64) + local.get $79 + local.set $80 + local.get $80 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.10 + end i64.const 372027257131986 i64.eq i32.eqz @@ -7344,10 +7540,13 @@ local.get $79 i32.const 23 call $~lib/date/Date#setUTCHours - local.get $79 - local.set $81 - local.get $81 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.11 (result i64) + local.get $79 + local.set $81 + local.get $81 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.11 + end i64.const 372027339931986 i64.eq i32.eqz @@ -7365,10 +7564,13 @@ call $~lib/date/Date#constructor local.tee $82 i32.store $0 offset=28 - local.get $82 - local.set $83 - local.get $83 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.2 (result i32) + local.get $82 + local.set $83 + local.get $83 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.2 + end i32.const 1973 i32.eq i32.eqz @@ -7380,12 +7582,15 @@ call $~lib/builtins/abort unreachable end - local.get $82 - local.set $84 - local.get $84 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.2 (result i32) + local.get $82 + local.set $84 + local.get $84 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.2 + end i32.const 11 i32.eq i32.eqz @@ -7400,10 +7605,13 @@ local.get $82 i32.const 12 call $~lib/date/Date#setUTCDate - local.get $82 - local.set $85 - local.get $85 - call $~lib/date/Date#get:day + block $~lib/date/Date#getUTCDate|inlined.2 (result i32) + local.get $82 + local.set $85 + local.get $85 + call $~lib/date/Date#get:day + br $~lib/date/Date#getUTCDate|inlined.2 + end i32.const 12 i32.eq i32.eqz @@ -7418,10 +7626,13 @@ local.get $82 i32.const 2 call $~lib/date/Date#setUTCDate - local.get $82 - local.set $86 - local.get $86 - call $~lib/date/Date#get:day + block $~lib/date/Date#getUTCDate|inlined.3 (result i32) + local.get $82 + local.set $86 + local.get $86 + call $~lib/date/Date#get:day + br $~lib/date/Date#getUTCDate|inlined.3 + end i32.const 2 i32.eq i32.eqz @@ -7460,12 +7671,15 @@ global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs - local.get $82 - local.set $87 - local.get $87 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.3 (result i32) + local.get $82 + local.set $87 + local.get $87 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.3 + end i32.const 2 i32.eq i32.eqz @@ -7489,10 +7703,13 @@ global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs - local.get $82 - local.set $88 - local.get $88 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.12 (result i64) + local.get $82 + local.set $88 + local.get $88 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.12 + end i64.const 1709168591274 i64.eq i32.eqz @@ -7504,12 +7721,15 @@ call $~lib/builtins/abort unreachable end - local.get $82 - local.set $89 - local.get $89 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.4 (result i32) + local.get $82 + local.set $89 + local.get $89 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.4 + end i32.const 1 i32.eq i32.eqz @@ -7521,10 +7741,13 @@ call $~lib/builtins/abort unreachable end - local.get $82 - local.set $90 - local.get $90 - call $~lib/date/Date#get:day + block $~lib/date/Date#getUTCDate|inlined.4 (result i32) + local.get $82 + local.set $90 + local.get $90 + call $~lib/date/Date#get:day + br $~lib/date/Date#getUTCDate|inlined.4 + end i32.const 29 i32.eq i32.eqz @@ -7584,10 +7807,13 @@ local.get $82 i32.const 20 call $~lib/date/Date#setUTCDate - local.get $82 - local.set $91 - local.get $91 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.13 (result i64) + local.get $82 + local.set $91 + local.get $91 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.13 + end i64.const 1363748399999 i64.eq i32.eqz @@ -7602,10 +7828,13 @@ local.get $82 i32.const 1 call $~lib/date/Date#setUTCDate - local.get $82 - local.set $92 - local.get $92 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.14 (result i64) + local.get $82 + local.set $92 + local.get $92 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.14 + end i64.const 1362106799999 i64.eq i32.eqz @@ -7620,10 +7849,13 @@ local.get $82 i32.const 1000 call $~lib/date/Date#setUTCMilliseconds - local.get $82 - local.set $93 - local.get $93 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.15 (result i64) + local.get $82 + local.set $93 + local.get $93 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.15 + end i64.const 1362106800000 i64.eq i32.eqz @@ -7642,10 +7874,13 @@ i32.const 1000 i32.mul call $~lib/date/Date#setUTCMilliseconds - local.get $82 - local.set $94 - local.get $94 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.16 (result i64) + local.get $82 + local.set $94 + local.get $94 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.16 + end i64.const 1362110400000 i64.eq i32.eqz @@ -7666,10 +7901,13 @@ i32.const 1 i32.add call $~lib/date/Date#setUTCMilliseconds - local.get $82 - local.set $95 - local.get $95 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.17 (result i64) + local.get $82 + local.set $95 + local.get $95 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.17 + end i64.const 1362114000001 i64.eq i32.eqz @@ -7690,10 +7928,13 @@ i32.const 1 i32.add call $~lib/date/Date#setUTCMilliseconds - local.get $82 - local.set $96 - local.get $96 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.18 (result i64) + local.get $82 + local.set $96 + local.get $96 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.18 + end i64.const 1362117600001 i64.eq i32.eqz @@ -7714,10 +7955,13 @@ local.get $82 i32.const -2208 call $~lib/date/Date#setUTCDate - local.get $82 - local.set $97 - local.get $97 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.19 (result i64) + local.get $82 + local.set $97 + local.get $97 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.19 + end i64.const -67301808726 i64.eq i32.eqz @@ -7738,10 +7982,13 @@ local.get $82 i32.const 2208 call $~lib/date/Date#setUTCDate - local.get $82 - local.set $98 - local.get $98 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.20 (result i64) + local.get $82 + local.set $98 + local.get $98 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.20 + end i64.const 314240591274 i64.eq i32.eqz @@ -7753,19 +8000,22 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 1467763200000 - call $~lib/date/Date#constructor - local.tee $99 - i32.store $0 offset=32 - local.get $99 - call $~lib/date/Date#get:year - local.get $99 - call $~lib/date/Date#get:month - local.get $99 - call $~lib/date/Date#get:day - call $~lib/date/dayOfWeek + block $~lib/date/Date#getUTCDay|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1467763200000 + call $~lib/date/Date#constructor + local.tee $99 + i32.store $0 offset=32 + local.get $99 + call $~lib/date/Date#get:year + local.get $99 + call $~lib/date/Date#get:month + local.get $99 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.0 + end i32.const 3 i32.eq i32.eqz @@ -7774,24 +8024,27 @@ i32.const 128 i32.const 187 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 1467763200000 - i64.const 1 - i64.sub - call $~lib/date/Date#constructor - local.tee $100 - i32.store $0 offset=36 - local.get $100 - call $~lib/date/Date#get:year - local.get $100 - call $~lib/date/Date#get:month - local.get $100 - call $~lib/date/Date#get:day - call $~lib/date/dayOfWeek + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1467763200000 + i64.const 1 + i64.sub + call $~lib/date/Date#constructor + local.tee $100 + i32.store $0 offset=36 + local.get $100 + call $~lib/date/Date#get:year + local.get $100 + call $~lib/date/Date#get:month + local.get $100 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.1 + end i32.const 2 i32.eq i32.eqz @@ -7803,23 +8056,26 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 1467763200000 - i64.const 86400000 - i64.add - i64.const 1 - i64.sub - call $~lib/date/Date#constructor - local.tee $101 - i32.store $0 offset=40 - local.get $101 - call $~lib/date/Date#get:year - local.get $101 - call $~lib/date/Date#get:month - local.get $101 - call $~lib/date/Date#get:day - call $~lib/date/dayOfWeek + block $~lib/date/Date#getUTCDay|inlined.2 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1467763200000 + i64.const 86400000 + i64.add + i64.const 1 + i64.sub + call $~lib/date/Date#constructor + local.tee $101 + i32.store $0 offset=40 + local.get $101 + call $~lib/date/Date#get:year + local.get $101 + call $~lib/date/Date#get:month + local.get $101 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.2 + end i32.const 3 i32.eq i32.eqz @@ -7831,21 +8087,24 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 1467763200000 - i64.const 86400000 - i64.add - call $~lib/date/Date#constructor - local.tee $102 - i32.store $0 offset=44 - local.get $102 - call $~lib/date/Date#get:year - local.get $102 - call $~lib/date/Date#get:month - local.get $102 - call $~lib/date/Date#get:day - call $~lib/date/dayOfWeek + block $~lib/date/Date#getUTCDay|inlined.3 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1467763200000 + i64.const 86400000 + i64.add + call $~lib/date/Date#constructor + local.tee $102 + i32.store $0 offset=44 + local.get $102 + call $~lib/date/Date#get:year + local.get $102 + call $~lib/date/Date#get:month + local.get $102 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.3 + end i32.const 4 i32.eq i32.eqz @@ -7857,19 +8116,22 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 1468022400000 - call $~lib/date/Date#constructor - local.tee $103 - i32.store $0 offset=48 - local.get $103 - call $~lib/date/Date#get:year - local.get $103 - call $~lib/date/Date#get:month - local.get $103 - call $~lib/date/Date#get:day - call $~lib/date/dayOfWeek + block $~lib/date/Date#getUTCDay|inlined.4 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1468022400000 + call $~lib/date/Date#constructor + local.tee $103 + i32.store $0 offset=48 + local.get $103 + call $~lib/date/Date#get:year + local.get $103 + call $~lib/date/Date#get:month + local.get $103 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.4 + end i32.const 6 i32.eq i32.eqz @@ -7881,21 +8143,24 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 1468022400000 - i64.const 1 - i64.sub - call $~lib/date/Date#constructor - local.tee $104 - i32.store $0 offset=52 - local.get $104 - call $~lib/date/Date#get:year - local.get $104 - call $~lib/date/Date#get:month - local.get $104 - call $~lib/date/Date#get:day - call $~lib/date/dayOfWeek + block $~lib/date/Date#getUTCDay|inlined.5 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1468022400000 + i64.const 1 + i64.sub + call $~lib/date/Date#constructor + local.tee $104 + i32.store $0 offset=52 + local.get $104 + call $~lib/date/Date#get:year + local.get $104 + call $~lib/date/Date#get:month + local.get $104 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.5 + end i32.const 5 i32.eq i32.eqz @@ -7907,23 +8172,26 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 1468022400000 - i64.const 86400000 - i64.add - i64.const 1 - i64.sub - call $~lib/date/Date#constructor - local.tee $105 - i32.store $0 offset=56 - local.get $105 - call $~lib/date/Date#get:year - local.get $105 - call $~lib/date/Date#get:month - local.get $105 - call $~lib/date/Date#get:day - call $~lib/date/dayOfWeek + block $~lib/date/Date#getUTCDay|inlined.6 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1468022400000 + i64.const 86400000 + i64.add + i64.const 1 + i64.sub + call $~lib/date/Date#constructor + local.tee $105 + i32.store $0 offset=56 + local.get $105 + call $~lib/date/Date#get:year + local.get $105 + call $~lib/date/Date#get:month + local.get $105 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.6 + end i32.const 6 i32.eq i32.eqz @@ -7935,21 +8203,24 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 1468022400000 - i64.const 86400000 - i64.add - call $~lib/date/Date#constructor - local.tee $106 - i32.store $0 offset=60 - local.get $106 - call $~lib/date/Date#get:year - local.get $106 - call $~lib/date/Date#get:month - local.get $106 - call $~lib/date/Date#get:day - call $~lib/date/dayOfWeek + block $~lib/date/Date#getUTCDay|inlined.7 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1468022400000 + i64.const 86400000 + i64.add + call $~lib/date/Date#constructor + local.tee $106 + i32.store $0 offset=60 + local.get $106 + call $~lib/date/Date#get:year + local.get $106 + call $~lib/date/Date#get:month + local.get $106 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.7 + end i32.const 0 i32.eq i32.eqz @@ -7967,12 +8238,15 @@ call $~lib/date/Date#constructor local.tee $107 i32.store $0 offset=64 - local.get $107 - local.set $108 - local.get $108 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.5 (result i32) + local.get $107 + local.set $108 + local.get $108 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.5 + end i32.const 3 i32.eq i32.eqz @@ -7990,12 +8264,15 @@ global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs - local.get $107 - local.set $109 - local.get $109 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.6 (result i32) + local.get $107 + local.set $109 + local.get $109 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.6 + end i32.const 10 i32.eq i32.eqz @@ -8013,12 +8290,15 @@ global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs - local.get $107 - local.set $110 - local.get $110 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.7 (result i32) + local.get $107 + local.set $110 + local.get $110 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.7 + end i32.const 2 i32.eq i32.eqz @@ -8030,10 +8310,13 @@ call $~lib/builtins/abort unreachable end - local.get $107 - local.set $111 - local.get $111 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.21 (result i64) + local.get $107 + local.set $111 + local.get $111 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.21 + end i64.const 7899941177818720 i64.eq i32.eqz @@ -8051,10 +8334,13 @@ global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs - local.get $107 - local.set $112 - local.get $112 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.22 (result i64) + local.get $107 + local.set $112 + local.get $112 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.22 + end i64.const 7899936080218720 i64.eq i32.eqz @@ -8072,10 +8358,13 @@ global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs - local.get $107 - local.set $113 - local.get $113 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.23 (result i64) + local.get $107 + local.set $113 + local.get $113 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.23 + end i64.const 7899964937818720 i64.eq i32.eqz @@ -8093,12 +8382,15 @@ global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs - local.get $107 - local.set $114 - local.get $114 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.8 (result i32) + local.get $107 + local.set $114 + local.get $114 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.8 + end i32.const 11 i32.eq i32.eqz @@ -8110,10 +8402,13 @@ call $~lib/builtins/abort unreachable end - local.get $107 - local.set $115 - local.get $115 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.24 (result i64) + local.get $107 + local.set $115 + local.get $115 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.24 + end i64.const 7899933401818720 i64.eq i32.eqz @@ -8131,12 +8426,15 @@ global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs - local.get $107 - local.set $116 - local.get $116 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.9 (result i32) + local.get $107 + local.set $116 + local.get $116 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.9 + end i32.const 0 i32.eq i32.eqz @@ -8148,10 +8446,13 @@ call $~lib/builtins/abort unreachable end - local.get $107 - local.set $117 - local.get $117 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.25 (result i64) + local.get $107 + local.set $117 + local.get $117 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.25 + end i64.const 7899936080218720 i64.eq i32.eqz @@ -8169,10 +8470,13 @@ call $~lib/date/Date#constructor local.tee $118 i32.store $0 offset=68 - local.get $118 - local.set $119 - local.get $119 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.3 (result i32) + local.get $118 + local.set $119 + local.get $119 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.3 + end i32.const 253616 i32.eq i32.eqz @@ -8187,10 +8491,13 @@ local.get $118 i32.const 1976 call $~lib/date/Date#setUTCFullYear - local.get $118 - local.set $120 - local.get $120 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.4 (result i32) + local.get $118 + local.set $120 + local.get $120 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.4 + end i32.const 1976 i32.eq i32.eqz @@ -8205,10 +8512,13 @@ local.get $118 i32.const 20212 call $~lib/date/Date#setUTCFullYear - local.get $118 - local.set $121 - local.get $121 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.5 (result i32) + local.get $118 + local.set $121 + local.get $121 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.5 + end i32.const 20212 i32.eq i32.eqz @@ -8223,10 +8533,13 @@ local.get $118 i32.const 71 call $~lib/date/Date#setUTCFullYear - local.get $118 - local.set $122 - local.get $122 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.6 (result i32) + local.get $118 + local.set $122 + local.get $122 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.6 + end i32.const 71 i32.eq i32.eqz @@ -8743,10 +9056,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $128 - local.get $128 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.26 (result i64) + local.get $127 + local.set $128 + local.get $128 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.26 + end i64.const 192067200000 i64.eq i32.eqz @@ -8768,10 +9084,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $129 - local.get $129 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.27 (result i64) + local.get $127 + local.set $129 + local.get $129 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.27 + end i64.const 192067200000 i64.eq i32.eqz @@ -8793,10 +9112,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $130 - local.get $130 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.28 (result i64) + local.get $127 + local.set $130 + local.get $130 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.28 + end i64.const 11860387200000 i64.eq i32.eqz @@ -8818,10 +9140,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $131 - local.get $131 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.29 (result i64) + local.get $127 + local.set $131 + local.get $131 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.29 + end i64.const 192112496000 i64.eq i32.eqz @@ -8843,10 +9168,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $132 - local.get $132 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.30 (result i64) + local.get $127 + local.set $132 + local.get $132 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.30 + end i64.const 192112496456 i64.eq i32.eqz @@ -8868,10 +9196,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $133 - local.get $133 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.31 (result i64) + local.get $127 + local.set $133 + local.get $133 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.31 + end i64.const 192112496456 i64.eq i32.eqz @@ -8893,10 +9224,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $134 - local.get $134 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.32 (result i64) + local.get $127 + local.set $134 + local.get $134 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.32 + end i64.const -62167219200000 i64.eq i32.eqz @@ -8918,10 +9252,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $135 - local.get $135 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.33 (result i64) + local.get $127 + local.set $135 + local.get $135 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.33 + end i64.const -62135596800000 i64.eq i32.eqz @@ -8943,10 +9280,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $136 - local.get $136 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.34 (result i64) + local.get $127 + local.set $136 + local.get $136 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.34 + end i64.const 189302400000 i64.eq i32.eqz @@ -8968,10 +9308,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $137 - local.get $137 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.35 (result i64) + local.get $127 + local.set $137 + local.get $137 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.35 + end i64.const 191980800000 i64.eq i32.eqz @@ -8993,10 +9336,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $138 - local.get $138 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.36 (result i64) + local.get $127 + local.set $138 + local.get $138 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.36 + end i64.const 192067200000 i64.eq i32.eqz @@ -9018,10 +9364,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $139 - local.get $139 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.37 (result i64) + local.get $127 + local.set $139 + local.get $139 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.37 + end i64.const 192112440000 i64.eq i32.eqz @@ -9043,10 +9392,13 @@ call $~lib/date/Date.fromString local.tee $127 i32.store $0 offset=96 - local.get $127 - local.set $140 - local.get $140 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.38 (result i64) + local.get $127 + local.set $140 + local.get $140 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.38 + end i64.const 192112496000 i64.eq i32.eqz @@ -9070,10 +9422,13 @@ call $~lib/date/Date#constructor local.tee $142 i32.store $0 offset=104 - local.get $141 - local.set $143 - local.get $143 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.39 (result i64) + local.get $141 + local.set $143 + local.get $143 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.39 + end i64.const -8640000000000000 i64.eq i32.eqz @@ -9085,10 +9440,13 @@ call $~lib/builtins/abort unreachable end - local.get $142 - local.set $144 - local.get $144 - call $~lib/date/Date#get:epochMillis + block $~lib/date/Date#getTime|inlined.40 (result i64) + local.get $142 + local.set $144 + local.get $144 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.40 + end i64.const 8640000000000000 i64.eq i32.eqz @@ -9100,10 +9458,13 @@ call $~lib/builtins/abort unreachable end - local.get $141 - local.set $145 - local.get $145 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.7 (result i32) + local.get $141 + local.set $145 + local.get $145 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.7 + end i32.const -271821 i32.eq i32.eqz @@ -9115,10 +9476,13 @@ call $~lib/builtins/abort unreachable end - local.get $142 - local.set $146 - local.get $146 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.8 (result i32) + local.get $142 + local.set $146 + local.get $146 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.8 + end i32.const 275760 i32.eq i32.eqz @@ -9130,12 +9494,15 @@ call $~lib/builtins/abort unreachable end - local.get $141 - local.set $147 - local.get $147 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.10 (result i32) + local.get $141 + local.set $147 + local.get $147 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.10 + end i32.const 3 i32.eq i32.eqz @@ -9147,12 +9514,15 @@ call $~lib/builtins/abort unreachable end - local.get $142 - local.set $148 - local.get $148 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.11 (result i32) + local.get $142 + local.set $148 + local.get $148 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.11 + end i32.const 8 i32.eq i32.eqz @@ -9164,10 +9534,13 @@ call $~lib/builtins/abort unreachable end - local.get $141 - local.set $149 - local.get $149 - call $~lib/date/Date#get:day + block $~lib/date/Date#getUTCDate|inlined.5 (result i32) + local.get $141 + local.set $149 + local.get $149 + call $~lib/date/Date#get:day + br $~lib/date/Date#getUTCDate|inlined.5 + end i32.const 20 i32.eq i32.eqz @@ -9179,10 +9552,13 @@ call $~lib/builtins/abort unreachable end - local.get $142 - local.set $150 - local.get $150 - call $~lib/date/Date#get:day + block $~lib/date/Date#getUTCDate|inlined.6 (result i32) + local.get $142 + local.set $150 + local.get $150 + call $~lib/date/Date#get:day + br $~lib/date/Date#getUTCDate|inlined.6 + end i32.const 13 i32.eq i32.eqz @@ -9256,10 +9632,13 @@ call $~lib/date/Date#constructor local.tee $152 i32.store $0 offset=112 - local.get $152 - local.set $153 - local.get $153 - call $~lib/date/Date#get:year + block $~lib/date/Date#getUTCFullYear|inlined.9 (result i32) + local.get $152 + local.set $153 + local.get $153 + call $~lib/date/Date#get:year + br $~lib/date/Date#getUTCFullYear|inlined.9 + end i32.const -271821 i32.eq i32.eqz @@ -9271,12 +9650,15 @@ call $~lib/builtins/abort unreachable end - local.get $152 - local.set $154 - local.get $154 - call $~lib/date/Date#get:month - i32.const 1 - i32.sub + block $~lib/date/Date#getUTCMonth|inlined.12 (result i32) + local.get $152 + local.set $154 + local.get $154 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.12 + end i32.const 3 i32.eq i32.eqz @@ -9288,10 +9670,13 @@ call $~lib/builtins/abort unreachable end - local.get $152 - local.set $155 - local.get $155 - call $~lib/date/Date#get:day + block $~lib/date/Date#getUTCDate|inlined.7 (result i32) + local.get $152 + local.set $155 + local.get $155 + call $~lib/date/Date#get:day + br $~lib/date/Date#getUTCDate|inlined.7 + end i32.const 20 i32.eq i32.eqz @@ -9646,6 +10031,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/string/String#padStart (type $i32_i32_i32_=>_i32) (param $this i32) (param $length i32) (param $pad i32) (result i32) (local $thisSize i32) @@ -9756,6 +10142,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $11 + return ) (func $~lib/string/String#concat (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $thisSize i32) @@ -9821,6 +10208,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 + return ) (func $~lib/util/string/joinStringArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -9828,14 +10216,12 @@ (local $estLen i32) (local $value i32) (local $i i32) - (local $8 i32) (local $offset i32) (local $sepLen i32) (local $result i32) - (local $i|12 i32) - (local $13 i32) + (local $i|11 i32) (local $valueLen i32) - (local $15 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -9856,12 +10242,12 @@ i32.lt_s if i32.const 2432 - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 return end local.get $lastIndex @@ -9878,12 +10264,12 @@ else i32.const 2432 end - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 return end i32.const 0 @@ -9894,8 +10280,6 @@ local.get $i local.get $length i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -9941,17 +10325,15 @@ local.tee $result i32.store $0 offset=8 i32.const 0 - local.set $i|12 + local.set $i|11 loop $for-loop|1 - local.get $i|12 + local.get $i|11 local.get $lastIndex i32.lt_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $dataStart - local.get $i|12 + local.get $i|11 i32.const 2 i32.shl i32.add @@ -9997,10 +10379,10 @@ i32.add local.set $offset end - local.get $i|12 + local.get $i|11 i32.const 1 i32.add - local.set $i|12 + local.set $i|11 br $for-loop|1 end end @@ -10030,12 +10412,13 @@ memory.copy $0 $0 end local.get $result - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 + return ) (func $~lib/string/String#substring (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $len i32) @@ -10179,6 +10562,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $22 + return ) (func $~lib/rt/__newArray (type $i32_i32_i32_i32_=>_i32) (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) @@ -10231,6 +10615,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/array/Array<~lib/string/String>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -10287,5 +10672,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) ) diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 42862bfe65..d3072c12d9 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -5,8 +5,8 @@ (type $none_=>_none (func_subtype func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $i64_=>_i32 (func_subtype (param i64) (result i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) + (type $i64_=>_i32 (func_subtype (param i64) (result i32) func)) (type $i32_i32_i32_i32_i32_i32_i32_=>_i64 (func_subtype (param i32 i32 i32 i32 i32 i32 i32) (result i64) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -2411,6 +2411,225 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (type $i32_=>_i32) (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 + local.tee $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 2 + i32.shr_u + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7828 + i32.lt_s + if + i32.const 40624 + i32.const 40672 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + block $__inlined_func$~lib/util/string/joinStringArray + local.get $5 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $3 + i32.load $0 + local.tee $0 + i32.store $0 + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 3456 + local.get $0 + select + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $4 + i32.store $0 offset=4 + local.get $4 + if + local.get $1 + local.get $4 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $1 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $6 + i32.const 3452 + i32.load $0 + i32.const 1 + i32.shr_u + local.tee $5 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 offset=8 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $4 + i32.store $0 offset=4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $4 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 1 + i32.shl + memory.copy $0 $0 + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 3456 + local.get $5 + i32.const 1 + i32.shl + memory.copy $0 $0 + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $1 + i32.store $0 offset=4 + local.get $1 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const -2 + i32.and + memory.copy $0 $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $0 @@ -2601,6 +2820,26 @@ end i32.const -1 ) + (func $~lib/string/String#substring@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#substring + ) (func $~lib/array/Array<~lib/string/String>#push (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2737,6 +2976,28 @@ local.get $7 i32.store $0 offset=12 ) + (func $~lib/string/String#split@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#split + ) (func $~lib/util/string/strtol (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -2945,14 +3206,14 @@ i32.sub local.set $6 loop $while-continue|2 - block $while-break|2 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - if + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + if + block $while-break|2 local.get $3 local.get $2 i32.load16_u $0 @@ -3080,27 +3341,34 @@ i32.const 2 i32.shl i32.add - local.set $2 - loop $while-continue|03 + local.set $3 + loop $while-continue|04 local.get $1 - local.get $2 + local.get $3 i32.lt_u if local.get $1 i32.load $0 - local.tee $3 + local.tee $2 if - local.get $3 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $1 i32.const 4 i32.add local.set $1 - br $while-continue|03 + br $while-continue|04 end end - br $folding-inner0 + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end unreachable end @@ -3537,11 +3805,7 @@ i32.const 3456 i32.store $0 offset=4 i32.const 3616 - i32.const 3612 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 36 @@ -3608,20 +3872,21 @@ i32.store $0 offset=4 local.get $0 i32.load $0 - local.tee $1 + local.tee $4 local.get $0 i32.load $0 offset=4 - local.tee $4 + local.tee $1 i32.const 3 i32.lt_s i32.sub - local.set $5 - i32.const 7 + local.tee $5 i32.const 0 + i32.lt_s + local.set $6 local.get $0 i32.load $0 offset=8 local.tee $0 - local.get $4 + local.get $1 i32.const 1579 i32.add i32.load8_u $0 @@ -3629,10 +3894,7 @@ local.get $5 i32.const 3 i32.const 0 - local.get $5 - i32.const 0 - i32.lt_s - local.tee $6 + local.get $6 select i32.sub i32.const 4 @@ -3660,21 +3922,15 @@ i32.add i32.const 7 i32.rem_s - local.tee $5 - i32.const 0 - i32.lt_s - select - local.get $5 - i32.add local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 31 i32.shr_s local.tee $6 - local.get $1 - local.get $6 + local.get $4 i32.add + local.get $6 i32.xor i32.const 4 call $~lib/date/stringify @@ -3682,18 +3938,25 @@ i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.get $3 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 2 i32.shl i32.add i32.load $0 - local.tee $3 + local.tee $1 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer local.get $2 + i32.const 7 + i32.const 0 local.get $5 + i32.const 0 + i32.lt_s + select + local.get $5 + i32.add i32.const 2 i32.shl i32.add @@ -3709,11 +3972,11 @@ global.get $~lib/memory/__stack_pointer i32.const 5200 i32.const 5232 - local.get $1 + local.get $4 i32.const 0 i32.lt_s select - local.tee $1 + local.tee $3 i32.store $0 offset=24 global.get $~lib/memory/__stack_pointer i32.const 5152 @@ -3727,7 +3990,7 @@ i32.store $0 offset=28 i32.const 5152 i32.const 1 - local.get $3 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer i32.const 5152 @@ -3741,7 +4004,7 @@ i32.store $0 offset=28 i32.const 5152 i32.const 3 - local.get $1 + local.get $3 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer i32.const 5152 @@ -3757,11 +4020,7 @@ i32.const 3456 i32.store $0 offset=32 i32.const 5152 - i32.const 5148 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 36 @@ -3881,11 +4140,7 @@ i32.const 3456 i32.store $0 offset=16 i32.const 5456 - i32.const 5452 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -3953,12 +4208,10 @@ i32.const 3 i32.lt_s i32.sub - local.set $6 - i32.const 7 + local.tee $6 i32.const 0 - local.get $0 - i32.load $0 offset=8 - local.tee $7 + i32.lt_s + local.set $7 local.get $5 i32.const 1579 i32.add @@ -3967,10 +4220,7 @@ local.get $6 i32.const 3 i32.const 0 - local.get $6 - i32.const 0 - i32.lt_s - local.tee $8 + local.get $7 select i32.sub i32.const 4 @@ -3978,7 +4228,7 @@ local.get $6 i32.const 99 i32.const 0 - local.get $8 + local.get $7 select i32.sub i32.const 100 @@ -3987,7 +4237,7 @@ local.get $6 i32.const 399 i32.const 0 - local.get $8 + local.get $7 select i32.sub i32.const 400 @@ -3995,24 +4245,21 @@ i32.add i32.add i32.add + local.get $0 + i32.load $0 offset=8 + local.tee $6 i32.add i32.const 7 i32.rem_s - local.tee $6 - i32.const 0 - i32.lt_s - select - local.get $6 - i32.add - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $2 i32.const 31 i32.shr_s local.tee $8 local.get $2 - local.get $8 i32.add + local.get $8 i32.xor i32.const 4 call $~lib/date/stringify @@ -4031,7 +4278,14 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer local.get $3 - local.get $6 + i32.const 7 + i32.const 0 + local.get $7 + i32.const 0 + i32.lt_s + select + local.get $7 + i32.add i32.const 2 i32.shl i32.add @@ -4039,23 +4293,23 @@ local.tee $3 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 2 call $~lib/date/stringify local.tee $5 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - i64.const 86400000 - i64.const 0 local.get $0 i64.load $0 offset=16 i64.const 86400000 i64.rem_s local.tee $1 + i64.const 86400000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $1 i64.add i32.wrap_i64 i32.const 3600000 @@ -4065,17 +4319,17 @@ local.tee $6 i32.store $0 offset=24 global.get $~lib/memory/__stack_pointer - i64.const 3600000 - i64.const 0 local.get $0 i64.load $0 offset=16 i64.const 3600000 i64.rem_s local.tee $1 + i64.const 3600000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $1 i64.add i32.wrap_i64 i32.const 60000 @@ -4085,17 +4339,17 @@ local.tee $7 i32.store $0 offset=28 global.get $~lib/memory/__stack_pointer - i64.const 60000 - i64.const 0 local.get $0 i64.load $0 offset=16 i64.const 60000 i64.rem_s local.tee $1 + i64.const 60000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $1 i64.add i32.wrap_i64 i32.const 1000 @@ -4176,11 +4430,7 @@ i32.const 3456 i32.store $0 offset=44 i32.const 6368 - i32.const 6364 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 48 @@ -4188,8 +4438,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/string/String#split (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/string/String#split (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4197,6 +4446,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -4218,39 +4468,49 @@ memory.fill $0 block $folding-inner2 block $folding-inner1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load $0 offset=4 - i32.store $0 offset=4 + block $folding-inner0 local.get $2 - i32.load $0 offset=4 - local.get $0 - i32.store $0 - local.get $0 + i32.eqz + br_if $folding-inner0 + local.get $1 + i32.eqz if - local.get $2 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link + call $~lib/rt/__newArray + local.tee $3 + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load $0 offset=4 + i32.store $0 offset=4 + local.get $3 + i32.load $0 offset=4 + local.get $0 + i32.store $0 + local.get $0 + if + local.get $3 + local.get $0 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + br $folding-inner1 end - br $folding-inner1 - end - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - local.set $4 - block $folding-inner0 + local.get $0 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + local.set $5 + i32.const 2147483647 + local.get $2 + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 local.get $1 i32.const 20 i32.sub @@ -4259,44 +4519,44 @@ i32.shr_u local.tee $8 if - local.get $4 + local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store $0 offset=16 - local.get $2 + local.get $3 i32.load $0 offset=4 i32.const 3456 i32.store $0 br $folding-inner1 end else - local.get $4 + local.get $5 i32.eqz br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 2147483647 - local.get $4 - local.get $4 - i32.const 2147483647 - i32.eq + local.get $5 + local.get $2 + local.get $2 + local.get $5 + i32.gt_s select - local.tee $3 + local.tee $1 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store $0 offset=8 - local.get $2 + local.get $3 i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $2 loop $for-loop|0 local.get $1 - local.get $3 - i32.lt_s + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer i32.const 2 @@ -4306,14 +4566,14 @@ i32.store $0 offset=12 local.get $5 local.get $0 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_u $0 i32.store16 $0 local.get $4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add @@ -4321,15 +4581,15 @@ i32.store $0 local.get $5 if - local.get $2 + local.get $3 local.get $5 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end @@ -4338,19 +4598,19 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $6 i32.store $0 offset=20 loop $while-continue|1 local.get $0 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String#indexOf - local.tee $6 + local.tee $9 i32.const -1 i32.xor if - local.get $6 - local.get $2 + local.get $9 + local.get $3 i32.sub local.tee $7 i32.const 0 @@ -4360,54 +4620,54 @@ local.get $7 i32.const 1 i32.shl - local.tee $9 + local.tee $10 i32.const 2 call $~lib/rt/itcms/__new local.tee $7 i32.store $0 offset=24 local.get $7 local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - local.get $9 + local.get $10 memory.copy $0 $0 - local.get $5 + local.get $6 local.get $7 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store $0 offset=28 - local.get $5 + local.get $6 i32.const 3456 call $~lib/array/Array<~lib/string/String>#push end - local.get $3 + local.get $4 i32.const 1 i32.add - local.tee $3 - i32.const 2147483647 + local.tee $4 + local.get $2 i32.eq br_if $folding-inner2 - local.get $6 local.get $8 + local.get $9 i32.add - local.set $2 + local.set $3 br $while-continue|1 end end - local.get $2 + local.get $3 i32.eqz if - local.get $5 + local.get $6 local.get $0 call $~lib/array/Array<~lib/string/String>#push br $folding-inner2 end - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.sub local.tee $1 i32.const 0 @@ -4420,24 +4680,24 @@ local.tee $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 offset=32 - local.get $3 - local.get $0 local.get $2 + local.get $0 + local.get $3 i32.const 1 i32.shl i32.add local.get $1 memory.copy $0 $0 - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store $0 offset=28 - local.get $5 + local.get $6 i32.const 3456 call $~lib/array/Array<~lib/string/String>#push end @@ -4445,25 +4705,25 @@ i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return end i32.const 0 call $~lib/rt/__newArray - local.set $2 + local.set $3 end global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 ) (func $~lib/date/Date.fromString (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) @@ -4527,22 +4787,25 @@ call $~lib/string/String#substring local.tee $1 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $0 local.get $6 i32.const 1 i32.add - i32.const 2147483647 - call $~lib/string/String#substring + call $~lib/string/String#substring@varargs local.tee $0 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store $0 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $0 i32.const 3520 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=12 local.get $0 @@ -4610,12 +4873,13 @@ local.get $2 call $~lib/util/string/strtol local.set $2 + i32.const 1 + global.set $~argumentsLength local.get $0 local.get $6 i32.const 1 i32.add - i32.const 2147483647 - call $~lib/string/String#substring + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4634,10 +4898,12 @@ local.tee $0 i32.const 1616 i32.store $0 + i32.const 1 + global.set $~argumentsLength local.get $0 local.get $1 i32.const 1616 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=24 local.get $0 @@ -8070,212 +8336,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/string/joinStringArray (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store $0 - local.get $4 - i32.const 0 - i32.store $0 offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3456 - return - end - local.get $4 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load $0 - local.tee $0 - i32.store $0 - local.get $1 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 3456 - local.get $0 - select - return - end - loop $for-loop|0 - local.get $1 - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $5 - i32.store $0 offset=4 - local.get $5 - if - local.get $2 - local.get $5 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $2 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3452 - i32.load $0 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $4 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store $0 offset=8 - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $6 - i32.store $0 offset=4 - local.get $6 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $6 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - i32.const 1 - i32.shl - memory.copy $0 $0 - local.get $1 - local.get $6 - i32.add - local.set $1 - end - local.get $3 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 3456 - local.get $3 - i32.const 1 - i32.shl - memory.copy $0 $0 - local.get $1 - local.get $3 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $0 - i32.store $0 offset=4 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const -2 - i32.and - memory.copy $0 $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) (func $~lib/string/String#substring (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index f54c7c9b6b..9b57179838 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -37,6 +37,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/hash/HASH<~lib/string/String|null> (type $i32_=>_i32) (param $key i32) (result i32) (local $key|1 i32) @@ -48,18 +49,15 @@ (local $s3 i32) (local $s4 i32) (local $end i32) - (local $10 i32) - (local $h|11 i32) - (local $key|12 i32) - (local $h|13 i32) - (local $key|14 i32) - (local $h|15 i32) - (local $key|16 i32) - (local $h|17 i32) - (local $key|18 i32) - (local $end|19 i32) - (local $20 i32) - (local $21 i32) + (local $h|10 i32) + (local $key|11 i32) + (local $h|12 i32) + (local $key|13 i32) + (local $h|14 i32) + (local $key|15 i32) + (local $h|16 i32) + (local $key|17 i32) + (local $end|18 i32) i32.const 1 drop block $~lib/util/hash/hashStr|inlined.0 (result i32) @@ -111,68 +109,78 @@ local.get $pos local.get $end i32.le_u - local.set $10 - local.get $10 if - local.get $s1 - local.set $h|11 - local.get $pos - i32.load $0 - local.set $key|12 - local.get $h|11 - local.get $key|12 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.0 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load $0 + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.0 + end local.set $s1 - local.get $s2 - local.set $h|13 - local.get $pos - i32.load $0 offset=4 - local.set $key|14 - local.get $h|13 - local.get $key|14 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.1 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load $0 offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.1 + end local.set $s2 - local.get $s3 - local.set $h|15 - local.get $pos - i32.load $0 offset=8 - local.set $key|16 - local.get $h|15 - local.get $key|16 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.2 (result i32) + local.get $s3 + local.set $h|14 + local.get $pos + i32.load $0 offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.2 + end local.set $s3 - local.get $s4 - local.set $h|17 - local.get $pos - i32.load $0 offset=12 - local.set $key|18 - local.get $h|17 - local.get $key|18 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.3 (result i32) + local.get $s4 + local.set $h|16 + local.get $pos + i32.load $0 offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.3 + end local.set $s4 local.get $pos i32.const 16 @@ -212,13 +220,11 @@ i32.add i32.const 4 i32.sub - local.set $end|19 + local.set $end|18 loop $while-continue|1 local.get $pos - local.get $end|19 + local.get $end|18 i32.le_u - local.set $20 - local.get $20 if local.get $h local.get $pos @@ -243,13 +249,11 @@ local.get $key|1 local.get $len i32.add - local.set $end|19 + local.set $end|18 loop $while-continue|2 local.get $pos - local.get $end|19 + local.get $end|18 i32.lt_u - local.set $21 - local.get $21 if local.get $h local.get $pos @@ -298,11 +302,13 @@ i32.xor local.set $h local.get $h + br $~lib/util/hash/hashStr|inlined.0 end return ) (func $std/hash/check (type $i32_=>_i32) (param $hash i32) (result i32) i32.const 1 + return ) (func $~lib/util/hash/HASH<~lib/string/String> (type $i32_=>_i32) (param $key i32) (result i32) (local $key|1 i32) @@ -314,18 +320,15 @@ (local $s3 i32) (local $s4 i32) (local $end i32) - (local $10 i32) - (local $h|11 i32) - (local $key|12 i32) - (local $h|13 i32) - (local $key|14 i32) - (local $h|15 i32) - (local $key|16 i32) - (local $h|17 i32) - (local $key|18 i32) - (local $end|19 i32) - (local $20 i32) - (local $21 i32) + (local $h|10 i32) + (local $key|11 i32) + (local $h|12 i32) + (local $key|13 i32) + (local $h|14 i32) + (local $key|15 i32) + (local $h|16 i32) + (local $key|17 i32) + (local $end|18 i32) i32.const 1 drop block $~lib/util/hash/hashStr|inlined.1 (result i32) @@ -377,68 +380,78 @@ local.get $pos local.get $end i32.le_u - local.set $10 - local.get $10 if - local.get $s1 - local.set $h|11 - local.get $pos - i32.load $0 - local.set $key|12 - local.get $h|11 - local.get $key|12 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.4 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load $0 + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.4 + end local.set $s1 - local.get $s2 - local.set $h|13 - local.get $pos - i32.load $0 offset=4 - local.set $key|14 - local.get $h|13 - local.get $key|14 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.5 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load $0 offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.5 + end local.set $s2 - local.get $s3 - local.set $h|15 - local.get $pos - i32.load $0 offset=8 - local.set $key|16 - local.get $h|15 - local.get $key|16 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.6 (result i32) + local.get $s3 + local.set $h|14 + local.get $pos + i32.load $0 offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.6 + end local.set $s3 - local.get $s4 - local.set $h|17 - local.get $pos - i32.load $0 offset=12 - local.set $key|18 - local.get $h|17 - local.get $key|18 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.7 (result i32) + local.get $s4 + local.set $h|16 + local.get $pos + i32.load $0 offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.7 + end local.set $s4 local.get $pos i32.const 16 @@ -478,13 +491,11 @@ i32.add i32.const 4 i32.sub - local.set $end|19 + local.set $end|18 loop $while-continue|1 local.get $pos - local.get $end|19 + local.get $end|18 i32.le_u - local.set $20 - local.get $20 if local.get $h local.get $pos @@ -509,13 +520,11 @@ local.get $key|1 local.get $len i32.add - local.set $end|19 + local.set $end|18 loop $while-continue|2 local.get $pos - local.get $end|19 + local.get $end|18 i32.lt_u - local.set $21 - local.get $21 if local.get $h local.get $pos @@ -564,6 +573,7 @@ i32.xor local.set $h local.get $h + br $~lib/util/hash/hashStr|inlined.1 end return ) @@ -581,56 +591,59 @@ i32.const 4 i32.eq drop - local.get $key - i32.reinterpret_f32 - local.set $key|1 - i32.const 4 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.0 (result i32) + local.get $key + i32.reinterpret_f32 + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.0 + end return ) (func $~lib/util/hash/HASH (type $f64_=>_i32) (param $key f64) (result i32) @@ -650,70 +663,73 @@ i32.const 8 i32.eq drop - local.get $key - i64.reinterpret_f64 - local.set $key|1 - i32.const 0 - i32.const 374761393 - i32.add - i32.const 8 - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $key|1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash64|inlined.0 (result i32) + local.get $key + i64.reinterpret_f64 + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.0 + end return ) (func $~start (type $none_=>_none) diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index 7a19c79ab2..33aa518396 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -90,6 +90,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -102,17 +103,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -124,8 +126,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -268,6 +268,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -287,6 +288,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -372,15 +374,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -407,6 +406,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -582,22 +582,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -622,16 +625,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -727,18 +733,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -762,18 +771,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -783,12 +795,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -936,22 +951,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -996,16 +1014,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1060,10 +1081,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1179,6 +1203,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1188,15 +1213,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1257,17 +1280,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1279,22 +1300,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1367,6 +1386,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1427,8 +1447,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1473,8 +1491,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1524,8 +1540,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1607,6 +1621,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1685,6 +1700,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1700,6 +1716,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1790,16 +1807,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1832,16 +1852,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1855,46 +1878,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1931,10 +1961,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2054,30 +2087,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2148,6 +2187,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2160,6 +2200,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2222,6 +2263,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2343,56 +2385,59 @@ i32.const 4 i32.le_u drop - local.get $key - i32.extend8_s - local.set $key|1 - i32.const 1 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.0 (result i32) + local.get $key + i32.extend8_s + local.set $key|1 + i32.const 1 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.0 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -2413,7 +2458,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -2428,8 +2472,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -2462,6 +2504,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -2471,6 +2514,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -2515,7 +2559,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -2550,7 +2593,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -2561,7 +2607,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -2571,8 +2620,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -2613,12 +2660,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -2665,10 +2718,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -2766,6 +2821,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -3006,6 +3062,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3032,6 +3089,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3062,6 +3120,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3081,7 +3140,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -3096,8 +3154,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -3130,6 +3186,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -3174,7 +3231,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -3209,7 +3265,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -3220,7 +3279,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -3230,8 +3292,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -3272,12 +3332,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -3318,55 +3384,58 @@ i32.const 4 i32.le_u drop - local.get $key - local.set $key|1 - i32.const 4 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.1 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.1 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -3387,7 +3456,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -3402,8 +3470,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -3434,6 +3500,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -3478,7 +3545,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -3513,7 +3579,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -3524,7 +3593,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -3534,8 +3606,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -3576,12 +3646,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -3611,10 +3687,12 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -3682,25 +3760,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key i32) (local $value i32) - (local $k|13 i32) - (local $14 i32) - (local $k|15 i32) - (local $16 i32) + (local $k|10 i32) + (local $k|11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -3721,8 +3795,6 @@ local.get $k i32.const 100 i32.lt_s - local.set $2 - local.get $2 if local.get $map local.get $k @@ -3793,16 +3865,14 @@ unreachable end i32.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_s - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -3814,10 +3884,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -3830,14 +3900,14 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -3849,10 +3919,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -3864,10 +3934,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -3911,8 +3981,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -3996,16 +4064,14 @@ unreachable end i32.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 i32.const 50 i32.lt_s - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -4017,10 +4083,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.add i32.eq i32.eqz @@ -4033,11 +4099,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -4049,10 +4115,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 i32.const 1 i32.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -4070,16 +4136,14 @@ unreachable end i32.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 i32.const 50 i32.lt_s - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -4092,14 +4156,14 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -4111,11 +4175,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -4127,10 +4191,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 i32.const 1 i32.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -4218,58 +4282,61 @@ i32.const 1 i32.const 4 i32.le_u - drop - local.get $key - i32.const 255 - i32.and - local.set $key|1 - i32.const 1 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + drop + block $~lib/util/hash/hash32|inlined.2 (result i32) + local.get $key + i32.const 255 + i32.and + local.set $key|1 + i32.const 1 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.2 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -4290,7 +4357,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -4305,8 +4371,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -4341,6 +4405,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -4350,6 +4415,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -4394,7 +4460,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -4429,7 +4494,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -4440,7 +4508,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -4450,8 +4521,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -4492,12 +4561,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -4544,10 +4619,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -4644,6 +4721,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -4670,6 +4748,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -4689,7 +4768,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -4704,8 +4782,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -4740,6 +4816,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -4784,7 +4861,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -4819,7 +4895,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -4830,7 +4909,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -4840,8 +4922,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -4882,12 +4962,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -4917,6 +5003,7 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -4984,25 +5071,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key i32) (local $value i32) - (local $k|13 i32) - (local $14 i32) - (local $k|15 i32) - (local $16 i32) + (local $k|10 i32) + (local $k|11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -5023,8 +5106,6 @@ local.get $k i32.const 100 i32.lt_u - local.set $2 - local.get $2 if local.get $map local.get $k @@ -5095,16 +5176,14 @@ unreachable end i32.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_u - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -5116,10 +5195,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -5132,14 +5211,14 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -5151,10 +5230,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -5166,10 +5245,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -5213,8 +5292,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -5298,16 +5375,14 @@ unreachable end i32.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 i32.const 50 i32.lt_u - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -5319,10 +5394,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.add i32.eq i32.eqz @@ -5335,11 +5410,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -5351,10 +5426,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 i32.const 1 i32.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -5372,16 +5447,14 @@ unreachable end i32.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 i32.const 50 i32.lt_u - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -5394,14 +5467,14 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -5413,11 +5486,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -5429,10 +5502,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 i32.const 1 i32.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -5521,56 +5594,59 @@ i32.const 4 i32.le_u drop - local.get $key - i32.extend16_s - local.set $key|1 - i32.const 2 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.3 (result i32) + local.get $key + i32.extend16_s + local.set $key|1 + i32.const 2 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.3 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -5591,7 +5667,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -5606,8 +5681,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -5640,6 +5713,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -5649,6 +5723,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -5693,7 +5768,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -5728,7 +5802,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -5739,7 +5816,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -5749,8 +5829,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -5791,12 +5869,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -5843,10 +5927,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -5943,6 +6029,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -5969,6 +6056,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -5988,7 +6076,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -6003,8 +6090,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -6037,6 +6122,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -6081,7 +6167,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -6116,7 +6201,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -6127,7 +6215,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -6137,8 +6228,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -6179,12 +6268,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -6214,6 +6309,7 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -6281,25 +6377,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key i32) (local $value i32) - (local $k|13 i32) - (local $14 i32) - (local $k|15 i32) - (local $16 i32) + (local $k|10 i32) + (local $k|11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -6320,8 +6412,6 @@ local.get $k i32.const 100 i32.lt_s - local.set $2 - local.get $2 if local.get $map local.get $k @@ -6392,16 +6482,14 @@ unreachable end i32.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_s - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -6413,10 +6501,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -6429,14 +6517,14 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -6448,10 +6536,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -6463,10 +6551,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -6510,8 +6598,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -6595,16 +6681,14 @@ unreachable end i32.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 i32.const 50 i32.lt_s - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -6616,10 +6700,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.add i32.eq i32.eqz @@ -6632,11 +6716,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -6648,10 +6732,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 i32.const 1 i32.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -6669,16 +6753,14 @@ unreachable end i32.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 i32.const 50 i32.lt_s - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -6691,14 +6773,14 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -6710,11 +6792,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -6726,10 +6808,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 i32.const 1 i32.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -6818,57 +6900,60 @@ i32.const 4 i32.le_u drop - local.get $key - i32.const 65535 - i32.and - local.set $key|1 - i32.const 2 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.4 (result i32) + local.get $key + i32.const 65535 + i32.and + local.set $key|1 + i32.const 2 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.4 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -6889,7 +6974,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -6904,8 +6988,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -6940,6 +7022,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -6949,6 +7032,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -6993,7 +7077,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -7028,7 +7111,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -7039,7 +7125,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -7049,8 +7138,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -7091,12 +7178,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -7143,10 +7236,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -7243,6 +7338,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -7269,6 +7365,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -7288,7 +7385,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -7303,8 +7399,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -7339,6 +7433,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -7383,7 +7478,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -7418,7 +7512,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -7429,7 +7526,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -7439,8 +7539,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -7481,12 +7579,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -7516,6 +7620,7 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -7583,25 +7688,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key i32) (local $value i32) - (local $k|13 i32) - (local $14 i32) - (local $k|15 i32) - (local $16 i32) + (local $k|10 i32) + (local $k|11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -7622,8 +7723,6 @@ local.get $k i32.const 100 i32.lt_u - local.set $2 - local.get $2 if local.get $map local.get $k @@ -7694,16 +7793,14 @@ unreachable end i32.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_u - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -7715,10 +7812,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -7731,14 +7828,14 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -7750,10 +7847,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -7765,10 +7862,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -7812,8 +7909,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -7897,16 +7992,14 @@ unreachable end i32.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 i32.const 50 i32.lt_u - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -7918,10 +8011,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.add i32.eq i32.eqz @@ -7934,11 +8027,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -7950,10 +8043,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 i32.const 1 i32.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -7971,16 +8064,14 @@ unreachable end i32.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 i32.const 50 i32.lt_u - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -7993,14 +8084,14 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -8012,11 +8103,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -8028,10 +8119,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 i32.const 1 i32.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -8076,6 +8167,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/Map#get (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -8097,10 +8189,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -8168,25 +8262,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key i32) (local $value i32) - (local $k|13 i32) - (local $14 i32) - (local $k|15 i32) - (local $16 i32) + (local $k|10 i32) + (local $k|11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -8207,8 +8297,6 @@ local.get $k i32.const 100 i32.lt_s - local.set $2 - local.get $2 if local.get $map local.get $k @@ -8279,16 +8367,14 @@ unreachable end i32.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_s - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -8300,10 +8386,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -8316,14 +8402,14 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -8335,10 +8421,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -8350,10 +8436,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -8397,8 +8483,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -8482,16 +8566,14 @@ unreachable end i32.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 i32.const 50 i32.lt_s - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -8503,10 +8585,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.add i32.eq i32.eqz @@ -8519,11 +8601,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -8535,10 +8617,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 i32.const 1 i32.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -8556,16 +8638,14 @@ unreachable end i32.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 i32.const 50 i32.lt_s - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -8578,14 +8658,14 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -8597,11 +8677,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -8613,10 +8693,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 i32.const 1 i32.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -8704,56 +8784,59 @@ i32.const 4 i32.const 4 i32.le_u - drop - local.get $key - local.set $key|1 - i32.const 4 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + drop + block $~lib/util/hash/hash32|inlined.5 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.5 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -8774,7 +8857,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -8789,8 +8871,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -8821,6 +8901,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -8830,6 +8911,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -8874,7 +8956,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -8909,7 +8990,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -8920,7 +9004,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -8930,8 +9017,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -8972,12 +9057,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -9024,10 +9115,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -9124,6 +9217,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -9150,6 +9244,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -9169,7 +9264,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -9184,8 +9278,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -9216,6 +9308,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -9260,7 +9353,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -9295,7 +9387,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -9306,7 +9401,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -9316,8 +9414,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -9358,12 +9454,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -9393,6 +9495,7 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -9460,25 +9563,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key i32) (local $value i32) - (local $k|13 i32) - (local $14 i32) - (local $k|15 i32) - (local $16 i32) + (local $k|10 i32) + (local $k|11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -9499,8 +9598,6 @@ local.get $k i32.const 100 i32.lt_u - local.set $2 - local.get $2 if local.get $map local.get $k @@ -9571,16 +9668,14 @@ unreachable end i32.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_u - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -9592,10 +9687,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -9608,14 +9703,14 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -9627,10 +9722,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.add i32.eq i32.eqz @@ -9642,10 +9737,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -9689,8 +9784,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -9774,16 +9867,14 @@ unreachable end i32.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 i32.const 50 i32.lt_u - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -9795,10 +9886,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.add i32.eq i32.eqz @@ -9811,11 +9902,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -9827,10 +9918,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 i32.const 1 i32.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -9848,16 +9939,14 @@ unreachable end i32.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 i32.const 50 i32.lt_u - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -9870,14 +9959,14 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -9889,11 +9978,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -9905,10 +9994,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 i32.const 1 i32.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -10000,69 +10089,72 @@ i32.const 8 i32.eq drop - local.get $key - local.set $key|1 - i32.const 0 - i32.const 374761393 - i32.add - i32.const 8 - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $key|1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash64|inlined.0 (result i32) + local.get $key + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.0 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -10083,7 +10175,6 @@ ) (func $~lib/map/Map#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -10098,8 +10189,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -10130,6 +10219,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) local.get $this @@ -10139,6 +10229,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -10183,7 +10274,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i64) @@ -10218,7 +10308,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -10229,7 +10322,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -10239,8 +10335,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -10281,12 +10375,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -10333,10 +10433,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -10433,6 +10535,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) @@ -10459,6 +10562,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -10478,7 +10582,6 @@ ) (func $~lib/map/Map#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -10493,8 +10596,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -10525,6 +10626,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i64_=>_none) (param $this i32) (param $value i64) local.get $this @@ -10569,7 +10671,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i64) @@ -10604,7 +10705,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -10615,7 +10719,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -10625,8 +10732,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -10667,12 +10772,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -10702,6 +10813,7 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) (local $entry i32) @@ -10769,25 +10881,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i64) - (local $2 i32) - (local $k|3 i64) - (local $4 i32) + (local $k|2 i64) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key i64) (local $value i32) - (local $k|13 i64) - (local $14 i32) - (local $k|15 i64) - (local $16 i32) + (local $k|10 i64) + (local $k|11 i64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -10808,8 +10916,6 @@ local.get $k i64.const 100 i64.lt_s - local.set $2 - local.get $2 if local.get $map local.get $k @@ -10882,16 +10988,14 @@ unreachable end i64.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i64.const 100 i64.lt_s - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -10903,10 +11007,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.wrap_i64 i32.add i32.eq @@ -10920,15 +11024,15 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.wrap_i64 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -10940,10 +11044,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.wrap_i64 i32.add i32.eq @@ -10956,10 +11060,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i64.const 1 i64.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -11003,8 +11107,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -11089,16 +11191,14 @@ unreachable end i64.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 i64.const 50 i64.lt_s - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -11110,10 +11210,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.wrap_i64 i32.add i32.eq @@ -11127,11 +11227,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -11143,10 +11243,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 i64.const 1 i64.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -11164,16 +11264,14 @@ unreachable end i64.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 i64.const 50 i64.lt_s - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -11186,15 +11284,15 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.wrap_i64 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -11206,11 +11304,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -11222,10 +11320,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 i64.const 1 i64.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -11317,69 +11415,72 @@ i32.const 8 i32.eq drop - local.get $key - local.set $key|1 - i32.const 0 - i32.const 374761393 - i32.add - i32.const 8 - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $key|1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash64|inlined.1 (result i32) + local.get $key + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.1 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -11400,7 +11501,6 @@ ) (func $~lib/map/Map#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -11415,8 +11515,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -11447,6 +11545,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) local.get $this @@ -11456,6 +11555,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -11500,7 +11600,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i64) @@ -11535,7 +11634,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -11546,7 +11648,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -11556,8 +11661,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -11598,12 +11701,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -11650,10 +11759,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -11750,6 +11861,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) @@ -11776,6 +11888,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -11795,7 +11908,6 @@ ) (func $~lib/map/Map#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -11810,8 +11922,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -11842,6 +11952,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i64_=>_none) (param $this i32) (param $value i64) local.get $this @@ -11886,7 +11997,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i64) @@ -11921,7 +12031,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -11932,7 +12045,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -11942,8 +12058,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -11984,12 +12098,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -12019,6 +12139,7 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) (local $entry i32) @@ -12086,25 +12207,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k i64) - (local $2 i32) - (local $k|3 i64) - (local $4 i32) + (local $k|2 i64) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key i64) (local $value i32) - (local $k|13 i64) - (local $14 i32) - (local $k|15 i64) - (local $16 i32) + (local $k|10 i64) + (local $k|11 i64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -12125,8 +12242,6 @@ local.get $k i64.const 100 i64.lt_u - local.set $2 - local.get $2 if local.get $map local.get $k @@ -12199,16 +12314,14 @@ unreachable end i64.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i64.const 100 i64.lt_u - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -12220,10 +12333,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.wrap_i64 i32.add i32.eq @@ -12237,15 +12350,15 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.wrap_i64 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -12257,10 +12370,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.wrap_i64 i32.add i32.eq @@ -12273,10 +12386,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i64.const 1 i64.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -12320,8 +12433,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -12406,16 +12517,14 @@ unreachable end i64.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 i64.const 50 i64.lt_u - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -12427,10 +12536,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.wrap_i64 i32.add i32.eq @@ -12444,11 +12553,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -12460,10 +12569,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 i64.const 1 i64.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -12481,16 +12590,14 @@ unreachable end i64.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 i64.const 50 i64.lt_u - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -12503,15 +12610,15 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.wrap_i64 i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -12523,11 +12630,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -12539,10 +12646,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 i64.const 1 i64.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -12631,56 +12738,59 @@ i32.const 4 i32.eq drop - local.get $key - i32.reinterpret_f32 - local.set $key|1 - i32.const 4 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.6 (result i32) + local.get $key + i32.reinterpret_f32 + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.6 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -12701,7 +12811,6 @@ ) (func $~lib/map/Map#find (type $i32_f32_i32_=>_i32) (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -12716,8 +12825,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -12748,6 +12855,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_f32_=>_i32) (param $this i32) (param $key f32) (result i32) local.get $this @@ -12757,6 +12865,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -12801,7 +12910,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey f32) @@ -12836,7 +12944,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -12847,7 +12958,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -12857,8 +12971,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -12899,12 +13011,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -12951,10 +13069,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -13051,6 +13171,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $value f32) @@ -13077,6 +13198,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -13096,7 +13218,6 @@ ) (func $~lib/map/Map#find (type $i32_f32_i32_=>_i32) (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -13111,8 +13232,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -13143,6 +13262,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_f32_=>_none) (param $this i32) (param $value f32) local.get $this @@ -13187,7 +13307,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey f32) @@ -13222,7 +13341,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -13233,7 +13355,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -13243,8 +13368,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -13285,12 +13408,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -13320,6 +13449,7 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_f32_=>_i32) (param $this i32) (param $key f32) (result i32) (local $entry i32) @@ -13387,25 +13517,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k f32) - (local $2 i32) - (local $k|3 f32) - (local $4 i32) + (local $k|2 f32) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key f32) (local $value i32) - (local $k|13 f32) - (local $14 i32) - (local $k|15 f32) - (local $16 i32) + (local $k|10 f32) + (local $k|11 f32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -13426,8 +13552,6 @@ local.get $k f32.const 100 f32.lt - local.set $2 - local.get $2 if local.get $map local.get $k @@ -13500,16 +13624,14 @@ unreachable end f32.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 f32.const 100 f32.lt - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -13521,10 +13643,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.trunc_sat_f32_s i32.add i32.eq @@ -13538,15 +13660,15 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.trunc_sat_f32_s i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -13558,10 +13680,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.trunc_sat_f32_s i32.add i32.eq @@ -13574,10 +13696,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 f32.const 1 f32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -13621,8 +13743,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -13707,16 +13827,14 @@ unreachable end f32.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 f32.const 50 f32.lt - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -13728,10 +13846,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.trunc_sat_f32_s i32.add i32.eq @@ -13745,11 +13863,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -13761,10 +13879,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 f32.const 1 f32.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -13782,16 +13900,14 @@ unreachable end f32.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 f32.const 50 f32.lt - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -13804,15 +13920,15 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.trunc_sat_f32_s i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -13824,11 +13940,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -13840,10 +13956,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 f32.const 1 f32.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -13935,70 +14051,73 @@ i32.const 8 i32.eq drop - local.get $key - i64.reinterpret_f64 - local.set $key|1 - i32.const 0 - i32.const 374761393 - i32.add - i32.const 8 - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $key|1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash64|inlined.2 (result i32) + local.get $key + i64.reinterpret_f64 + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.2 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -14019,7 +14138,6 @@ ) (func $~lib/map/Map#find (type $i32_f64_i32_=>_i32) (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -14034,8 +14152,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -14066,6 +14182,7 @@ end end i32.const 0 + return ) (func $~lib/map/Map#has (type $i32_f64_=>_i32) (param $this i32) (param $key f64) (result i32) local.get $this @@ -14075,6 +14192,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -14119,7 +14237,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey f64) @@ -14154,7 +14271,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -14165,7 +14285,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -14175,8 +14298,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -14217,12 +14338,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -14269,10 +14396,12 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -14369,6 +14498,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $value f64) @@ -14395,6 +14525,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -14414,7 +14545,6 @@ ) (func $~lib/map/Map#find (type $i32_f64_i32_=>_i32) (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -14429,8 +14559,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -14461,6 +14589,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_f64_=>_none) (param $this i32) (param $value f64) local.get $this @@ -14505,7 +14634,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey f64) @@ -14540,7 +14668,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -14551,7 +14682,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -14561,8 +14695,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -14603,12 +14735,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -14638,6 +14776,7 @@ (func $~lib/map/Map#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/map/Map#get:entriesCount + return ) (func $~lib/map/Map#delete (type $i32_f64_=>_i32) (param $this i32) (param $key f64) (result i32) (local $entry i32) @@ -14705,25 +14844,21 @@ call $~lib/map/Map#rehash end i32.const 1 + return ) (func $std/map/testNumeric (type $none_=>_none) (local $map i32) (local $k f64) - (local $2 i32) - (local $k|3 f64) - (local $4 i32) + (local $k|2 f64) (local $keys i32) (local $vals i32) (local $keyMap i32) (local $valMap i32) (local $index i32) - (local $10 i32) (local $key f64) (local $value i32) - (local $k|13 f64) - (local $14 i32) - (local $k|15 f64) - (local $16 i32) + (local $k|10 f64) + (local $k|11 f64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -14744,8 +14879,6 @@ local.get $k f64.const 100 f64.lt - local.set $2 - local.get $2 if local.get $map local.get $k @@ -14818,16 +14951,14 @@ unreachable end f64.const 0 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 f64.const 100 f64.lt - local.set $4 - local.get $4 if local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -14839,10 +14970,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 10 - local.get $k|3 + local.get $k|2 i32.trunc_sat_f64_s i32.add i32.eq @@ -14856,15 +14987,15 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 i32.const 20 - local.get $k|3 + local.get $k|2 i32.trunc_sat_f64_s i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#has i32.eqz if @@ -14876,10 +15007,10 @@ unreachable end local.get $map - local.get $k|3 + local.get $k|2 call $~lib/map/Map#get i32.const 20 - local.get $k|3 + local.get $k|2 i32.trunc_sat_f64_s i32.add i32.eq @@ -14892,10 +15023,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 f64.const 1 f64.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -14939,8 +15070,6 @@ local.get $keys call $~lib/array/Array#get:length i32.lt_s - local.set $10 - local.get $10 if local.get $keys local.get $index @@ -15025,16 +15154,14 @@ unreachable end f64.const 0 - local.set $k|13 + local.set $k|10 loop $for-loop|3 - local.get $k|13 + local.get $k|10 f64.const 50 f64.lt - local.set $14 - local.get $14 if local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz if @@ -15046,10 +15173,10 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#get i32.const 20 - local.get $k|13 + local.get $k|10 i32.trunc_sat_f64_s i32.add i32.eq @@ -15063,11 +15190,11 @@ unreachable end local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#delete drop local.get $map - local.get $k|13 + local.get $k|10 call $~lib/map/Map#has i32.eqz i32.eqz @@ -15079,10 +15206,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|13 + local.get $k|10 f64.const 1 f64.add - local.set $k|13 + local.set $k|10 br $for-loop|3 end end @@ -15100,16 +15227,14 @@ unreachable end f64.const 0 - local.set $k|15 + local.set $k|11 loop $for-loop|4 - local.get $k|15 + local.get $k|11 f64.const 50 f64.lt - local.set $16 - local.get $16 if local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -15122,15 +15247,15 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 i32.const 10 - local.get $k|15 + local.get $k|11 i32.trunc_sat_f64_s i32.add call $~lib/map/Map#set drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz if @@ -15142,11 +15267,11 @@ unreachable end local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#delete drop local.get $map - local.get $k|15 + local.get $k|11 call $~lib/map/Map#has i32.eqz i32.eqz @@ -15158,10 +15283,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|15 + local.get $k|11 f64.const 1 f64.add - local.set $k|15 + local.set $k|11 br $for-loop|4 end end @@ -15199,8 +15324,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -15211,8 +15334,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -15226,8 +15347,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -16204,7 +16323,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16270,7 +16392,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16336,7 +16461,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16392,7 +16520,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16455,7 +16586,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16521,7 +16655,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16577,7 +16714,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16640,7 +16780,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16706,7 +16849,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16762,7 +16908,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16825,7 +16974,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16891,7 +17043,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -16947,7 +17102,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17000,7 +17158,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17063,7 +17224,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17129,7 +17293,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17185,7 +17352,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17248,7 +17418,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17314,7 +17487,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17370,7 +17546,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17433,7 +17612,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17499,7 +17681,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17555,7 +17740,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17618,7 +17806,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17684,7 +17875,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17740,7 +17934,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17803,7 +18000,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17869,7 +18069,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17925,7 +18128,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.8 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -17987,6 +18193,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -18062,7 +18269,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -18107,6 +18317,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -18204,10 +18415,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -18236,12 +18446,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -18253,11 +18464,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -18273,12 +18484,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -18376,10 +18588,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -18408,12 +18619,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -18425,11 +18637,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -18445,12 +18657,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -18526,7 +18739,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -18571,6 +18787,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -18646,7 +18863,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -18691,6 +18911,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -18766,7 +18987,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -18811,6 +19035,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -18908,10 +19133,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -18940,12 +19164,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -18957,11 +19182,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -18977,12 +19202,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -18990,10 +19216,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -19022,12 +19247,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -19039,11 +19265,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -19059,12 +19285,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -19140,7 +19367,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -19185,6 +19415,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -19260,7 +19491,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -19305,6 +19539,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -19402,10 +19637,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -19434,12 +19668,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -19451,11 +19686,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -19471,12 +19706,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -19484,10 +19720,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -19516,12 +19751,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -19533,11 +19769,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -19553,12 +19789,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -19634,7 +19871,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -19679,6 +19919,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -19754,7 +19995,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -19799,6 +20043,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -19896,10 +20141,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -19928,12 +20172,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -19945,11 +20190,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -19965,12 +20210,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -19978,10 +20224,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -20010,12 +20255,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -20027,11 +20273,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -20047,12 +20293,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -20128,7 +20375,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 8 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -20173,6 +20423,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#keys (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -20180,10 +20431,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -20212,12 +20462,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -20229,11 +20480,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -20249,12 +20500,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -20262,10 +20514,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -20294,12 +20545,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -20311,11 +20563,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -20331,12 +20583,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -20412,7 +20665,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -20457,6 +20713,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -20554,10 +20811,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -20586,12 +20842,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -20603,11 +20860,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -20623,12 +20880,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -20636,10 +20894,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -20668,12 +20925,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -20685,11 +20943,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -20705,12 +20963,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -20786,7 +21045,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -20831,6 +21093,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) @@ -20906,7 +21169,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -20951,6 +21217,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -21048,10 +21315,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21080,12 +21346,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -21097,11 +21364,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -21117,12 +21384,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -21130,10 +21398,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21162,12 +21429,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -21179,11 +21447,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -21199,12 +21467,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i64_i64_=>_i32) (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) @@ -21280,7 +21549,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -21325,6 +21597,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) @@ -21400,7 +21673,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -21445,6 +21721,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -21542,10 +21819,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21574,12 +21850,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -21591,11 +21868,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -21611,12 +21888,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -21624,10 +21902,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21656,12 +21933,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -21673,11 +21951,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -21693,12 +21971,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i64_i64_=>_i32) (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) @@ -21774,7 +22053,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -21819,6 +22101,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_f32_i32_=>_i32) (param $this i32) (param $key f32) (param $value i32) (result i32) (local $hashCode i32) @@ -21894,7 +22177,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -21939,6 +22225,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -22036,10 +22323,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22068,12 +22354,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -22085,11 +22372,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -22105,12 +22392,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -22118,10 +22406,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22150,12 +22437,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -22167,11 +22455,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -22187,12 +22475,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_f32_f32_=>_i32) (param $this i32) (param $key f32) (param $value f32) (result i32) (local $hashCode i32) @@ -22268,7 +22557,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -22313,6 +22605,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_f64_i32_=>_i32) (param $this i32) (param $key f64) (param $value i32) (result i32) (local $hashCode i32) @@ -22388,7 +22681,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -22433,6 +22729,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -22530,10 +22827,9 @@ (local $keys i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22562,12 +22858,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -22579,11 +22876,11 @@ if local.get $keys local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:key call $~lib/array/Array#__uset @@ -22599,12 +22896,13 @@ local.get $length call $~lib/array/Array#set:length local.get $keys - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#values (type $i32_=>_i32) (param $this i32) (result i32) (local $start i32) @@ -22612,10 +22910,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22644,12 +22941,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 16 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.mul i32.add local.set $entry @@ -22661,11 +22959,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/map/MapEntry#get:value call $~lib/array/Array#__uset @@ -22681,12 +22979,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/map/Map#set (type $i32_f64_f64_=>_i32) (param $this i32) (param $key f64) (param $value f64) (result i32) (local $hashCode i32) @@ -22762,7 +23061,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 24 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 24 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -22807,5 +23109,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) ) diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 090e7219e2..c04daa81ac 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -1559,7 +1559,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -1567,7 +1567,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -1575,13 +1575,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $7 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -1589,23 +1589,23 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load8_s $0 local.tee $8 i32.store8 $0 local.get $2 - local.get $7 + local.get $4 i32.load $0 offset=4 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.extend8_s @@ -1618,23 +1618,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -1651,20 +1651,20 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 12 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $5 i32.store $0 - local.get $6 + local.get $5 if local.get $0 - local.get $6 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -1680,7 +1680,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $6 i32.store $0 offset=12 local.get $0 local.get $0 @@ -1922,7 +1922,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -1930,7 +1930,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -1938,13 +1938,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $7 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -1952,23 +1952,23 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load $0 local.tee $8 i32.store $0 local.get $2 - local.get $7 + local.get $4 i32.load $0 offset=4 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -1980,23 +1980,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -2013,20 +2013,20 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 12 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $5 i32.store $0 - local.get $6 + local.get $5 if local.get $0 - local.get $6 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -2042,7 +2042,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $6 i32.store $0 offset=12 local.get $0 local.get $0 @@ -2226,7 +2226,7 @@ i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $3 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -2234,16 +2234,16 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 3 i32.store $0 offset=4 i32.const 48 @@ -2252,22 +2252,22 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 4 i32.store $0 offset=12 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=16 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer @@ -2275,16 +2275,16 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $12 + local.get $3 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_s if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -2360,15 +2360,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -2445,7 +2445,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -2467,7 +2467,7 @@ br $for-loop|0 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -2486,9 +2486,9 @@ i32.const 100 i32.lt_s if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -2565,7 +2565,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -2580,15 +2580,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -2665,7 +2665,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -2687,7 +2687,7 @@ br $for-loop|1 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -2712,12 +2712,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $12 + local.get $3 i32.load $0 offset=8 - local.set $3 - local.get $12 - i32.load $0 offset=16 local.set $4 + local.get $3 + i32.load $0 offset=16 + local.set $5 local.get $0 i32.const 8 i32.sub @@ -2748,7 +2748,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $4 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -2761,33 +2761,33 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select - local.tee $5 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $7 i32.store $0 - local.get $6 + local.get $7 if local.get $2 - local.get $6 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $6 + local.get $7 i32.store $0 offset=4 local.get $2 - local.get $5 + local.get $6 i32.store $0 offset=8 local.get $2 - local.get $4 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2798,17 +2798,17 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 - local.get $4 - local.get $10 + loop $for-loop|00 + local.get $5 + local.get $12 i32.gt_s if - local.get $3 - local.get $10 + local.get $4 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $5 + local.tee $6 i32.load $0 offset=8 i32.const 1 i32.and @@ -2818,7 +2818,7 @@ local.get $2 i32.load $0 offset=4 i32.add - local.get $5 + local.get $6 i32.load8_s $0 i32.store8 $0 local.get $0 @@ -2826,11 +2826,11 @@ i32.add local.set $0 end - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 - br $for-loop|01 + local.set $12 + br $for-loop|00 end end local.get $2 @@ -2848,9 +2848,9 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $3 call $~lib/map/Map#values - local.tee $6 + local.tee $8 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 @@ -2923,17 +2923,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $10 i32.store $0 offset=16 i32.const 0 - local.set $10 + local.set $12 loop $for-loop|2 - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -2945,19 +2945,19 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=4 i32.add i32.load8_s $0 local.set $14 - local.get $6 - local.get $10 - call $~lib/array/Array#__get - local.set $7 + local.get $8 local.get $12 + call $~lib/array/Array#__get + local.set $9 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $14 i32.extend8_s @@ -2994,8 +2994,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find10 - loop $while-continue|011 + block $__inlined_func$~lib/map/Map#find14 + loop $while-continue|015 local.get $0 if local.get $0 @@ -3013,12 +3013,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find10 + br_if $__inlined_func$~lib/map/Map#find14 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|011 + br $while-continue|015 end end i32.const 0 @@ -3034,11 +3034,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 - local.get $7 + local.get $9 i32.const 20 i32.sub local.tee $1 @@ -3076,13 +3076,13 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find13 - loop $while-continue|014 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 local.get $0 if local.get $0 i32.load $0 offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -3095,12 +3095,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find13 - local.get $3 + br_if $__inlined_func$~lib/map/Map#find17 + local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|014 + br $while-continue|018 end end i32.const 0 @@ -3158,7 +3158,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $5 + local.tee $7 local.get $13 i32.load $0 offset=4 i32.and @@ -3168,7 +3168,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|015 + loop $while-continue|019 local.get $0 if local.get $0 @@ -3191,7 +3191,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|019 end end i32.const 0 @@ -3229,7 +3229,7 @@ i32.const 1 i32.or end - local.set $15 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3243,14 +3243,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $15 + local.get $4 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $15 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3258,7 +3258,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $4 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3272,11 +3272,11 @@ i32.const 3 i32.shl i32.add - local.set $3 + local.set $5 local.get $1 local.set $0 loop $while-continue|00 - local.get $3 + local.get $5 local.get $11 i32.ne if @@ -3296,8 +3296,8 @@ i32.load8_s $0 offset=1 i32.store8 $0 offset=1 local.get $0 - local.get $9 local.get $15 + local.get $4 local.get $16 i32.extend8_s i32.const -1028477379 @@ -3350,16 +3350,16 @@ end end local.get $13 - local.get $9 + local.get $15 i32.store $0 - local.get $9 + local.get $15 if local.get $13 - local.get $9 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $15 + local.get $4 i32.store $0 offset=4 local.get $13 local.get $1 @@ -3371,7 +3371,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $4 + local.get $6 i32.store $0 offset=12 local.get $13 local.get $13 @@ -3414,7 +3414,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $5 + local.get $7 local.get $13 i32.load $0 offset=4 i32.and @@ -3432,17 +3432,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $10 + local.get $9 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|2 end end @@ -3458,7 +3458,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -3477,9 +3477,9 @@ i32.const 50 i32.lt_s if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3516,8 +3516,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find17 - loop $while-continue|018 + block $__inlined_func$~lib/map/Map#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -3535,12 +3535,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find17 + br_if $__inlined_func$~lib/map/Map#find23 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|018 + br $while-continue|024 end end i32.const 0 @@ -3556,7 +3556,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -3571,12 +3571,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3613,8 +3613,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 + block $__inlined_func$~lib/map/Map#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -3632,12 +3632,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 + br_if $__inlined_func$~lib/map/Map#find26 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|021 + br $while-continue|027 end end i32.const 0 @@ -3659,7 +3659,7 @@ br $for-loop|3 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -3678,9 +3678,9 @@ i32.const 50 i32.lt_s if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3717,8 +3717,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 + block $__inlined_func$~lib/map/Map#find29 + loop $while-continue|030 local.get $1 if local.get $1 @@ -3736,12 +3736,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 + br_if $__inlined_func$~lib/map/Map#find29 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|024 + br $while-continue|030 end end i32.const 0 @@ -3756,15 +3756,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3801,8 +3801,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 + block $__inlined_func$~lib/map/Map#find32 + loop $while-continue|033 local.get $1 if local.get $1 @@ -3820,12 +3820,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 + br_if $__inlined_func$~lib/map/Map#find32 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|027 + br $while-continue|033 end end i32.const 0 @@ -3841,12 +3841,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend8_s @@ -3883,8 +3883,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 + block $__inlined_func$~lib/map/Map#find35 + loop $while-continue|036 local.get $1 if local.get $1 @@ -3902,12 +3902,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 + br_if $__inlined_func$~lib/map/Map#find35 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|030 + br $while-continue|036 end end i32.const 0 @@ -3929,7 +3929,7 @@ br $for-loop|4 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -3941,9 +3941,9 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 call $~lib/map/Map#clear - local.get $12 + local.get $3 i32.load $0 offset=20 if i32.const 0 @@ -4001,7 +4001,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -4009,7 +4009,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -4017,13 +4017,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $7 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -4031,23 +4031,23 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load8_u $0 local.tee $8 i32.store8 $0 local.get $2 - local.get $7 + local.get $4 i32.load $0 offset=4 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -4059,23 +4059,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -4092,20 +4092,20 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 12 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $5 i32.store $0 - local.get $6 + local.get $5 if local.get $0 - local.get $6 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -4121,7 +4121,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $6 i32.store $0 offset=12 local.get $0 local.get $0 @@ -4391,7 +4391,7 @@ i32.const 24 i32.const 9 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $3 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -4399,16 +4399,16 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 3 i32.store $0 offset=4 i32.const 48 @@ -4417,22 +4417,22 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 4 i32.store $0 offset=12 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=16 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer @@ -4440,16 +4440,16 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $12 + local.get $3 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -4526,15 +4526,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -4612,7 +4612,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -4634,7 +4634,7 @@ br $for-loop|0 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -4653,9 +4653,9 @@ i32.const 100 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -4733,7 +4733,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -4748,15 +4748,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -4834,7 +4834,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -4856,7 +4856,7 @@ br $for-loop|1 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -4881,12 +4881,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $12 + local.get $3 i32.load $0 offset=8 - local.set $3 - local.get $12 - i32.load $0 offset=16 local.set $4 + local.get $3 + i32.load $0 offset=16 + local.set $5 local.get $0 i32.const 8 i32.sub @@ -4917,7 +4917,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $4 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -4930,33 +4930,33 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select - local.tee $5 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $7 i32.store $0 - local.get $6 + local.get $7 if local.get $2 - local.get $6 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $6 + local.get $7 i32.store $0 offset=4 local.get $2 - local.get $5 + local.get $6 i32.store $0 offset=8 local.get $2 - local.get $4 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4967,17 +4967,17 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 - local.get $4 - local.get $10 + loop $for-loop|00 + local.get $5 + local.get $12 i32.gt_s if - local.get $3 - local.get $10 + local.get $4 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $5 + local.tee $6 i32.load $0 offset=8 i32.const 1 i32.and @@ -4987,7 +4987,7 @@ local.get $2 i32.load $0 offset=4 i32.add - local.get $5 + local.get $6 i32.load8_u $0 i32.store8 $0 local.get $0 @@ -4995,11 +4995,11 @@ i32.add local.set $0 end - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 - br $for-loop|01 + local.set $12 + br $for-loop|00 end end local.get $2 @@ -5017,9 +5017,9 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $3 call $~lib/map/Map#values - local.tee $6 + local.tee $8 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 @@ -5092,17 +5092,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $10 i32.store $0 offset=16 i32.const 0 - local.set $10 + local.set $12 loop $for-loop|2 - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -5114,19 +5114,19 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=4 i32.add i32.load8_u $0 local.set $14 - local.get $6 - local.get $10 - call $~lib/array/Array#__get - local.set $7 + local.get $8 local.get $12 + call $~lib/array/Array#__get + local.set $9 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $14 i32.const -1028477379 @@ -5162,8 +5162,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find10 - loop $while-continue|011 + block $__inlined_func$~lib/map/Map#find14 + loop $while-continue|015 local.get $0 if local.get $0 @@ -5179,12 +5179,12 @@ local.get $14 i32.eq end - br_if $__inlined_func$~lib/map/Map#find10 + br_if $__inlined_func$~lib/map/Map#find14 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|011 + br $while-continue|015 end end i32.const 0 @@ -5200,11 +5200,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 - local.get $7 + local.get $9 i32.const 20 i32.sub local.tee $1 @@ -5243,13 +5243,13 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find13 - loop $while-continue|014 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 local.get $0 if local.get $0 i32.load $0 offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -5262,12 +5262,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find13 - local.get $3 + br_if $__inlined_func$~lib/map/Map#find17 + local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|014 + br $while-continue|018 end end i32.const 0 @@ -5324,7 +5324,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $5 + local.tee $7 local.get $13 i32.load $0 offset=4 i32.and @@ -5334,7 +5334,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|015 + loop $while-continue|019 local.get $0 if local.get $0 @@ -5355,7 +5355,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|019 end end i32.const 0 @@ -5393,7 +5393,7 @@ i32.const 1 i32.or end - local.set $15 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5407,14 +5407,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $15 + local.get $4 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $15 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -5422,7 +5422,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $4 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -5436,11 +5436,11 @@ i32.const 3 i32.shl i32.add - local.set $3 + local.set $5 local.get $1 local.set $0 loop $while-continue|00 - local.get $3 + local.get $5 local.get $11 i32.ne if @@ -5460,8 +5460,8 @@ i32.load8_u $0 offset=1 i32.store8 $0 offset=1 local.get $0 - local.get $9 local.get $15 + local.get $4 local.get $16 i32.const -1028477379 i32.mul @@ -5513,16 +5513,16 @@ end end local.get $13 - local.get $9 + local.get $15 i32.store $0 - local.get $9 + local.get $15 if local.get $13 - local.get $9 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $15 + local.get $4 i32.store $0 offset=4 local.get $13 local.get $1 @@ -5534,7 +5534,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $4 + local.get $6 i32.store $0 offset=12 local.get $13 local.get $13 @@ -5577,7 +5577,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $5 + local.get $7 local.get $13 i32.load $0 offset=4 i32.and @@ -5595,17 +5595,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $10 + local.get $9 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|2 end end @@ -5621,7 +5621,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -5640,9 +5640,9 @@ i32.const 50 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -5680,8 +5680,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find17 - loop $while-continue|018 + block $__inlined_func$~lib/map/Map#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -5699,12 +5699,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find17 + br_if $__inlined_func$~lib/map/Map#find23 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|018 + br $while-continue|024 end end i32.const 0 @@ -5720,7 +5720,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -5735,12 +5735,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -5778,8 +5778,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 + block $__inlined_func$~lib/map/Map#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -5797,12 +5797,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 + br_if $__inlined_func$~lib/map/Map#find26 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|021 + br $while-continue|027 end end i32.const 0 @@ -5824,7 +5824,7 @@ br $for-loop|3 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -5843,9 +5843,9 @@ i32.const 50 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -5883,8 +5883,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 + block $__inlined_func$~lib/map/Map#find29 + loop $while-continue|030 local.get $1 if local.get $1 @@ -5902,12 +5902,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 + br_if $__inlined_func$~lib/map/Map#find29 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|024 + br $while-continue|030 end end i32.const 0 @@ -5922,15 +5922,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -5968,8 +5968,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 + block $__inlined_func$~lib/map/Map#find32 + loop $while-continue|033 local.get $1 if local.get $1 @@ -5987,12 +5987,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 + br_if $__inlined_func$~lib/map/Map#find32 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|027 + br $while-continue|033 end end i32.const 0 @@ -6008,12 +6008,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 255 @@ -6051,8 +6051,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 + block $__inlined_func$~lib/map/Map#find35 + loop $while-continue|036 local.get $1 if local.get $1 @@ -6070,12 +6070,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 + br_if $__inlined_func$~lib/map/Map#find35 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|030 + br $while-continue|036 end end i32.const 0 @@ -6097,7 +6097,7 @@ br $for-loop|4 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -6109,9 +6109,9 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 call $~lib/map/Map#clear - local.get $12 + local.get $3 i32.load $0 offset=20 if i32.const 0 @@ -6169,7 +6169,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -6177,7 +6177,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6185,13 +6185,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $7 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -6199,23 +6199,23 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load16_s $0 local.tee $8 i32.store16 $0 local.get $2 - local.get $7 + local.get $4 i32.load $0 offset=4 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.extend16_s @@ -6228,23 +6228,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -6261,20 +6261,20 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 12 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $5 i32.store $0 - local.get $6 + local.get $5 if local.get $0 - local.get $6 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -6290,7 +6290,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $6 i32.store $0 offset=12 local.get $0 local.get $0 @@ -6558,7 +6558,7 @@ i32.const 24 i32.const 12 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $3 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6566,16 +6566,16 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 3 i32.store $0 offset=4 i32.const 48 @@ -6584,22 +6584,22 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 4 i32.store $0 offset=12 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=16 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer @@ -6607,16 +6607,16 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $12 + local.get $3 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_s if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -6692,15 +6692,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -6777,7 +6777,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -6799,7 +6799,7 @@ br $for-loop|0 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -6818,9 +6818,9 @@ i32.const 100 i32.lt_s if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -6897,7 +6897,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -6912,15 +6912,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -6997,7 +6997,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -7019,7 +7019,7 @@ br $for-loop|1 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -7044,12 +7044,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $12 + local.get $3 i32.load $0 offset=8 - local.set $3 - local.get $12 - i32.load $0 offset=16 local.set $4 + local.get $3 + i32.load $0 offset=16 + local.set $5 local.get $0 i32.const 8 i32.sub @@ -7080,7 +7080,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $4 + local.get $5 i32.const 536870910 i32.gt_u if @@ -7093,35 +7093,35 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 1 i32.shl - local.tee $5 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $7 i32.store $0 - local.get $6 + local.get $7 if local.get $2 - local.get $6 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $6 + local.get $7 i32.store $0 offset=4 local.get $2 - local.get $5 + local.get $6 i32.store $0 offset=8 local.get $2 - local.get $4 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7132,17 +7132,17 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 - local.get $4 - local.get $10 + loop $for-loop|00 + local.get $5 + local.get $12 i32.gt_s if - local.get $3 - local.get $10 + local.get $4 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $5 + local.tee $6 i32.load $0 offset=8 i32.const 1 i32.and @@ -7154,7 +7154,7 @@ i32.const 1 i32.shl i32.add - local.get $5 + local.get $6 i32.load16_s $0 i32.store16 $0 local.get $0 @@ -7162,11 +7162,11 @@ i32.add local.set $0 end - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 - br $for-loop|01 + local.set $12 + br $for-loop|00 end end local.get $2 @@ -7184,9 +7184,9 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $3 call $~lib/map/Map#values - local.tee $6 + local.tee $8 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 @@ -7259,17 +7259,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $10 i32.store $0 offset=16 i32.const 0 - local.set $10 + local.set $12 loop $for-loop|2 - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -7283,19 +7283,19 @@ end local.get $2 i32.load $0 offset=4 - local.get $10 + local.get $12 i32.const 1 i32.shl i32.add i32.load16_s $0 local.set $14 - local.get $6 - local.get $10 - call $~lib/array/Array#__get - local.set $7 + local.get $8 local.get $12 + call $~lib/array/Array#__get + local.set $9 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $14 i32.extend16_s @@ -7332,8 +7332,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find10 - loop $while-continue|011 + block $__inlined_func$~lib/map/Map#find14 + loop $while-continue|015 local.get $0 if local.get $0 @@ -7351,12 +7351,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find10 + br_if $__inlined_func$~lib/map/Map#find14 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|011 + br $while-continue|015 end end i32.const 0 @@ -7372,11 +7372,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 - local.get $7 + local.get $9 i32.const 20 i32.sub local.tee $1 @@ -7414,13 +7414,13 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find13 - loop $while-continue|014 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 local.get $0 if local.get $0 i32.load $0 offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -7433,12 +7433,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find13 - local.get $3 + br_if $__inlined_func$~lib/map/Map#find17 + local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|014 + br $while-continue|018 end end i32.const 0 @@ -7496,7 +7496,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $5 + local.tee $7 local.get $13 i32.load $0 offset=4 i32.and @@ -7506,7 +7506,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|015 + loop $while-continue|019 local.get $0 if local.get $0 @@ -7529,7 +7529,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|019 end end i32.const 0 @@ -7567,7 +7567,7 @@ i32.const 1 i32.or end - local.set $15 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -7581,14 +7581,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $15 + local.get $4 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $15 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -7596,7 +7596,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $4 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7610,11 +7610,11 @@ i32.const 3 i32.shl i32.add - local.set $3 + local.set $5 local.get $1 local.set $0 loop $while-continue|00 - local.get $3 + local.get $5 local.get $11 i32.ne if @@ -7634,8 +7634,8 @@ i32.load16_s $0 offset=2 i32.store16 $0 offset=2 local.get $0 - local.get $9 local.get $15 + local.get $4 local.get $16 i32.extend16_s i32.const -1028477379 @@ -7688,16 +7688,16 @@ end end local.get $13 - local.get $9 + local.get $15 i32.store $0 - local.get $9 + local.get $15 if local.get $13 - local.get $9 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $15 + local.get $4 i32.store $0 offset=4 local.get $13 local.get $1 @@ -7709,7 +7709,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $4 + local.get $6 i32.store $0 offset=12 local.get $13 local.get $13 @@ -7752,7 +7752,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $5 + local.get $7 local.get $13 i32.load $0 offset=4 i32.and @@ -7770,17 +7770,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $10 + local.get $9 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|2 end end @@ -7796,7 +7796,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -7815,9 +7815,9 @@ i32.const 50 i32.lt_s if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -7854,8 +7854,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find17 - loop $while-continue|018 + block $__inlined_func$~lib/map/Map#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -7873,12 +7873,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find17 + br_if $__inlined_func$~lib/map/Map#find23 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|018 + br $while-continue|024 end end i32.const 0 @@ -7894,7 +7894,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -7909,12 +7909,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -7951,8 +7951,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 + block $__inlined_func$~lib/map/Map#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -7970,12 +7970,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 + br_if $__inlined_func$~lib/map/Map#find26 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|021 + br $while-continue|027 end end i32.const 0 @@ -7997,7 +7997,7 @@ br $for-loop|3 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -8016,9 +8016,9 @@ i32.const 50 i32.lt_s if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -8055,8 +8055,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 + block $__inlined_func$~lib/map/Map#find29 + loop $while-continue|030 local.get $1 if local.get $1 @@ -8074,12 +8074,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 + br_if $__inlined_func$~lib/map/Map#find29 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|024 + br $while-continue|030 end end i32.const 0 @@ -8094,15 +8094,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -8139,8 +8139,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 + block $__inlined_func$~lib/map/Map#find32 + loop $while-continue|033 local.get $1 if local.get $1 @@ -8158,12 +8158,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 + br_if $__inlined_func$~lib/map/Map#find32 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|027 + br $while-continue|033 end end i32.const 0 @@ -8179,12 +8179,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.extend16_s @@ -8221,8 +8221,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 + block $__inlined_func$~lib/map/Map#find35 + loop $while-continue|036 local.get $1 if local.get $1 @@ -8240,12 +8240,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 + br_if $__inlined_func$~lib/map/Map#find35 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|030 + br $while-continue|036 end end i32.const 0 @@ -8267,7 +8267,7 @@ br $for-loop|4 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -8279,9 +8279,9 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 call $~lib/map/Map#clear - local.get $12 + local.get $3 i32.load $0 offset=20 if i32.const 0 @@ -8339,7 +8339,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -8347,7 +8347,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8355,13 +8355,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $7 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -8369,23 +8369,23 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load16_u $0 local.tee $8 i32.store16 $0 local.get $2 - local.get $7 + local.get $4 i32.load $0 offset=4 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -8397,23 +8397,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -8430,20 +8430,20 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 12 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $5 i32.store $0 - local.get $6 + local.get $5 if local.get $0 - local.get $6 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -8459,7 +8459,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $6 i32.store $0 offset=12 local.get $0 local.get $0 @@ -8729,7 +8729,7 @@ i32.const 24 i32.const 15 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $3 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8737,16 +8737,16 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 3 i32.store $0 offset=4 i32.const 48 @@ -8755,22 +8755,22 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 4 i32.store $0 offset=12 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=16 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer @@ -8778,16 +8778,16 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $12 + local.get $3 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -8864,15 +8864,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -8950,7 +8950,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -8972,7 +8972,7 @@ br $for-loop|0 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -8991,9 +8991,9 @@ i32.const 100 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -9071,7 +9071,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -9086,15 +9086,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -9172,7 +9172,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -9194,7 +9194,7 @@ br $for-loop|1 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -9219,12 +9219,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $12 + local.get $3 i32.load $0 offset=8 - local.set $3 - local.get $12 - i32.load $0 offset=16 local.set $4 + local.get $3 + i32.load $0 offset=16 + local.set $5 local.get $0 i32.const 8 i32.sub @@ -9255,7 +9255,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $4 + local.get $5 i32.const 536870910 i32.gt_u if @@ -9268,35 +9268,35 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 1 i32.shl - local.tee $5 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $7 i32.store $0 - local.get $6 + local.get $7 if local.get $2 - local.get $6 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $6 + local.get $7 i32.store $0 offset=4 local.get $2 - local.get $5 + local.get $6 i32.store $0 offset=8 local.get $2 - local.get $4 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -9307,17 +9307,17 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 - local.get $4 - local.get $10 + loop $for-loop|00 + local.get $5 + local.get $12 i32.gt_s if - local.get $3 - local.get $10 + local.get $4 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $5 + local.tee $6 i32.load $0 offset=8 i32.const 1 i32.and @@ -9329,7 +9329,7 @@ i32.const 1 i32.shl i32.add - local.get $5 + local.get $6 i32.load16_u $0 i32.store16 $0 local.get $0 @@ -9337,11 +9337,11 @@ i32.add local.set $0 end - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 - br $for-loop|01 + local.set $12 + br $for-loop|00 end end local.get $2 @@ -9359,9 +9359,9 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $3 call $~lib/map/Map#values - local.tee $6 + local.tee $8 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 @@ -9434,17 +9434,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $10 i32.store $0 offset=16 i32.const 0 - local.set $10 + local.set $12 loop $for-loop|2 - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -9458,19 +9458,19 @@ end local.get $2 i32.load $0 offset=4 - local.get $10 + local.get $12 i32.const 1 i32.shl i32.add i32.load16_u $0 local.set $14 - local.get $6 - local.get $10 - call $~lib/array/Array#__get - local.set $7 + local.get $8 local.get $12 + call $~lib/array/Array#__get + local.set $9 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $14 i32.const -1028477379 @@ -9506,8 +9506,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find10 - loop $while-continue|011 + block $__inlined_func$~lib/map/Map#find14 + loop $while-continue|015 local.get $0 if local.get $0 @@ -9523,12 +9523,12 @@ local.get $14 i32.eq end - br_if $__inlined_func$~lib/map/Map#find10 + br_if $__inlined_func$~lib/map/Map#find14 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|011 + br $while-continue|015 end end i32.const 0 @@ -9544,11 +9544,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 - local.get $7 + local.get $9 i32.const 20 i32.sub local.tee $1 @@ -9587,13 +9587,13 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find13 - loop $while-continue|014 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 local.get $0 if local.get $0 i32.load $0 offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -9606,12 +9606,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find13 - local.get $3 + br_if $__inlined_func$~lib/map/Map#find17 + local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|014 + br $while-continue|018 end end i32.const 0 @@ -9668,7 +9668,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $5 + local.tee $7 local.get $13 i32.load $0 offset=4 i32.and @@ -9678,7 +9678,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|015 + loop $while-continue|019 local.get $0 if local.get $0 @@ -9699,7 +9699,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|015 + br $while-continue|019 end end i32.const 0 @@ -9737,7 +9737,7 @@ i32.const 1 i32.or end - local.set $15 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9751,14 +9751,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $15 + local.get $4 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $15 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -9766,7 +9766,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $4 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9780,11 +9780,11 @@ i32.const 3 i32.shl i32.add - local.set $3 + local.set $5 local.get $1 local.set $0 loop $while-continue|00 - local.get $3 + local.get $5 local.get $11 i32.ne if @@ -9804,8 +9804,8 @@ i32.load16_u $0 offset=2 i32.store16 $0 offset=2 local.get $0 - local.get $9 local.get $15 + local.get $4 local.get $16 i32.const -1028477379 i32.mul @@ -9857,16 +9857,16 @@ end end local.get $13 - local.get $9 + local.get $15 i32.store $0 - local.get $9 + local.get $15 if local.get $13 - local.get $9 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $15 + local.get $4 i32.store $0 offset=4 local.get $13 local.get $1 @@ -9878,7 +9878,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $4 + local.get $6 i32.store $0 offset=12 local.get $13 local.get $13 @@ -9921,7 +9921,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $5 + local.get $7 local.get $13 i32.load $0 offset=4 i32.and @@ -9939,17 +9939,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $10 + local.get $9 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|2 end end @@ -9965,7 +9965,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -9984,9 +9984,9 @@ i32.const 50 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10024,8 +10024,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find17 - loop $while-continue|018 + block $__inlined_func$~lib/map/Map#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -10043,12 +10043,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find17 + br_if $__inlined_func$~lib/map/Map#find23 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|018 + br $while-continue|024 end end i32.const 0 @@ -10064,7 +10064,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -10079,12 +10079,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10122,8 +10122,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 + block $__inlined_func$~lib/map/Map#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -10141,12 +10141,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 + br_if $__inlined_func$~lib/map/Map#find26 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|021 + br $while-continue|027 end end i32.const 0 @@ -10168,7 +10168,7 @@ br $for-loop|3 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -10187,9 +10187,9 @@ i32.const 50 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10227,8 +10227,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 + block $__inlined_func$~lib/map/Map#find29 + loop $while-continue|030 local.get $1 if local.get $1 @@ -10246,12 +10246,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 + br_if $__inlined_func$~lib/map/Map#find29 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|024 + br $while-continue|030 end end i32.const 0 @@ -10266,15 +10266,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10312,8 +10312,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 + block $__inlined_func$~lib/map/Map#find32 + loop $while-continue|033 local.get $1 if local.get $1 @@ -10331,12 +10331,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 + br_if $__inlined_func$~lib/map/Map#find32 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|027 + br $while-continue|033 end end i32.const 0 @@ -10352,12 +10352,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const 65535 @@ -10395,8 +10395,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 + block $__inlined_func$~lib/map/Map#find35 + loop $while-continue|036 local.get $1 if local.get $1 @@ -10414,12 +10414,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 + br_if $__inlined_func$~lib/map/Map#find35 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|030 + br $while-continue|036 end end i32.const 0 @@ -10441,7 +10441,7 @@ br $for-loop|4 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -10453,9 +10453,9 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 call $~lib/map/Map#clear - local.get $12 + local.get $3 i32.load $0 offset=20 if i32.const 0 @@ -11146,7 +11146,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 + loop $for-loop|00 local.get $3 local.get $5 i32.lt_s @@ -11180,7 +11180,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|01 + br $for-loop|00 end end local.get $6 @@ -11939,7 +11939,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -11947,7 +11947,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -11955,13 +11955,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $7 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -11969,23 +11969,23 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load $0 local.tee $8 i32.store $0 local.get $2 - local.get $7 + local.get $4 i32.load $0 offset=4 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -11997,23 +11997,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -12030,20 +12030,20 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 12 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $5 i32.store $0 - local.get $6 + local.get $5 if local.get $0 - local.get $6 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -12059,7 +12059,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $6 i32.store $0 offset=12 local.get $0 local.get $0 @@ -12321,7 +12321,7 @@ i32.const 24 i32.const 18 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $3 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -12329,16 +12329,16 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 3 i32.store $0 offset=4 i32.const 48 @@ -12347,22 +12347,22 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store $0 offset=4 - local.get $12 + local.get $3 local.get $2 i32.store $0 offset=8 local.get $2 if - local.get $12 + local.get $3 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $3 i32.const 4 i32.store $0 offset=12 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=16 - local.get $12 + local.get $3 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer @@ -12370,16 +12370,16 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $12 + local.get $3 i32.store $0 loop $for-loop|0 local.get $0 i32.const 100 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -12452,15 +12452,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -12534,7 +12534,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -12556,7 +12556,7 @@ br $for-loop|0 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -12575,9 +12575,9 @@ i32.const 100 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -12651,7 +12651,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -12666,15 +12666,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -12748,7 +12748,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -12770,7 +12770,7 @@ br $for-loop|1 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 100 i32.ne @@ -12795,12 +12795,12 @@ local.tee $0 i32.const 0 i32.store $0 - local.get $12 + local.get $3 i32.load $0 offset=8 - local.set $3 - local.get $12 - i32.load $0 offset=16 local.set $4 + local.get $3 + i32.load $0 offset=16 + local.set $5 local.get $0 i32.const 8 i32.sub @@ -12831,7 +12831,7 @@ local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -12844,35 +12844,35 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $5 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store $0 offset=4 local.get $2 - local.get $6 + local.get $7 i32.store $0 - local.get $6 + local.get $7 if local.get $2 - local.get $6 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $6 + local.get $7 i32.store $0 offset=4 local.get $2 - local.get $5 + local.get $6 i32.store $0 offset=8 local.get $2 - local.get $4 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -12883,17 +12883,17 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 - local.get $4 - local.get $10 + loop $for-loop|00 + local.get $5 + local.get $12 i32.gt_s if - local.get $3 - local.get $10 + local.get $4 + local.get $12 i32.const 12 i32.mul i32.add - local.tee $5 + local.tee $6 i32.load $0 offset=8 i32.const 1 i32.and @@ -12905,7 +12905,7 @@ i32.const 2 i32.shl i32.add - local.get $5 + local.get $6 i32.load $0 i32.store $0 local.get $0 @@ -12913,11 +12913,11 @@ i32.add local.set $0 end - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 - br $for-loop|01 + local.set $12 + br $for-loop|00 end end local.get $2 @@ -12935,9 +12935,9 @@ local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $3 call $~lib/map/Map#values - local.tee $6 + local.tee $8 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer local.set $0 @@ -13010,17 +13010,17 @@ i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $10 i32.store $0 offset=16 i32.const 0 - local.set $10 + local.set $12 loop $for-loop|2 - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $10 + local.get $12 local.get $2 i32.load $0 offset=12 i32.ge_u @@ -13034,19 +13034,19 @@ end local.get $2 i32.load $0 offset=4 - local.get $10 + local.get $12 i32.const 2 i32.shl i32.add i32.load $0 local.set $14 - local.get $6 - local.get $10 - call $~lib/array/Array#__get - local.set $7 + local.get $8 local.get $12 + call $~lib/array/Array#__get + local.set $9 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $14 i32.const -1028477379 @@ -13082,8 +13082,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find10 - loop $while-continue|011 + block $__inlined_func$~lib/map/Map#find14 + loop $while-continue|015 local.get $0 if local.get $0 @@ -13099,12 +13099,12 @@ local.get $14 i32.eq end - br_if $__inlined_func$~lib/map/Map#find10 + br_if $__inlined_func$~lib/map/Map#find14 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|011 + br $while-continue|015 end end i32.const 0 @@ -13120,11 +13120,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 - local.get $7 + local.get $9 i32.const 20 i32.sub local.tee $1 @@ -13161,13 +13161,13 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find13 - loop $while-continue|014 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 local.get $0 if local.get $0 i32.load $0 offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) @@ -13178,12 +13178,12 @@ local.get $1 i32.eq end - br_if $__inlined_func$~lib/map/Map#find13 - local.get $3 + br_if $__inlined_func$~lib/map/Map#find17 + local.get $4 i32.const -2 i32.and local.set $0 - br $while-continue|014 + br $while-continue|018 end end i32.const 0 @@ -13240,7 +13240,7 @@ i32.shr_u local.get $0 i32.xor - local.tee $5 + local.tee $7 local.get $13 i32.load $0 offset=4 i32.and @@ -13249,8 +13249,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find15 - loop $while-continue|016 + block $__inlined_func$~lib/map/Map#find19 + loop $while-continue|020 local.get $0 if local.get $0 @@ -13266,12 +13266,12 @@ i32.load $0 i32.eq end - br_if $__inlined_func$~lib/map/Map#find15 + br_if $__inlined_func$~lib/map/Map#find19 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|016 + br $while-continue|020 end end i32.const 0 @@ -13309,7 +13309,7 @@ i32.const 1 i32.or end - local.set $15 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -13323,14 +13323,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $15 + local.get $4 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $15 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -13338,7 +13338,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $4 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13352,11 +13352,11 @@ i32.const 12 i32.mul i32.add - local.set $3 + local.set $5 local.get $1 local.set $0 loop $while-continue|00 - local.get $3 + local.get $5 local.get $11 i32.ne if @@ -13376,8 +13376,8 @@ i32.load $0 offset=4 i32.store $0 offset=4 local.get $0 - local.get $9 local.get $15 + local.get $4 local.get $16 i32.const -1028477379 i32.mul @@ -13429,16 +13429,16 @@ end end local.get $13 - local.get $9 + local.get $15 i32.store $0 - local.get $9 + local.get $15 if local.get $13 - local.get $9 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $15 + local.get $4 i32.store $0 offset=4 local.get $13 local.get $1 @@ -13450,7 +13450,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $4 + local.get $6 i32.store $0 offset=12 local.get $13 local.get $13 @@ -13493,7 +13493,7 @@ local.get $0 local.get $13 i32.load $0 - local.get $5 + local.get $7 local.get $13 i32.load $0 offset=4 i32.and @@ -13511,17 +13511,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $10 + local.get $9 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|2 end end @@ -13537,7 +13537,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $10 i32.load $0 offset=20 i32.const 100 i32.ne @@ -13556,9 +13556,9 @@ i32.const 50 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13594,8 +13594,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find18 - loop $while-continue|019 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 local.get $1 if local.get $1 @@ -13611,12 +13611,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/map/Map#find18 + br_if $__inlined_func$~lib/map/Map#find24 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|019 + br $while-continue|025 end end i32.const 0 @@ -13632,7 +13632,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#get local.get $0 @@ -13647,12 +13647,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13688,8 +13688,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find21 - loop $while-continue|022 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 local.get $1 if local.get $1 @@ -13705,12 +13705,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/map/Map#find21 + br_if $__inlined_func$~lib/map/Map#find27 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|022 + br $while-continue|028 end end i32.const 0 @@ -13732,7 +13732,7 @@ br $for-loop|3 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -13751,9 +13751,9 @@ i32.const 50 i32.lt_u if - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13789,8 +13789,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find24 - loop $while-continue|025 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 local.get $1 if local.get $1 @@ -13806,12 +13806,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/map/Map#find24 + br_if $__inlined_func$~lib/map/Map#find30 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|025 + br $while-continue|031 end end i32.const 0 @@ -13826,15 +13826,15 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13870,8 +13870,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find27 - loop $while-continue|028 + block $__inlined_func$~lib/map/Map#find33 + loop $while-continue|034 local.get $1 if local.get $1 @@ -13887,12 +13887,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/map/Map#find27 + br_if $__inlined_func$~lib/map/Map#find33 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|028 + br $while-continue|034 end end i32.const 0 @@ -13908,12 +13908,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 local.get $0 call $~lib/map/Map#delete - local.get $12 + local.get $3 i32.load $0 - local.get $12 + local.get $3 i32.load $0 offset=4 local.get $0 i32.const -1028477379 @@ -13949,8 +13949,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/map/Map#find30 - loop $while-continue|031 + block $__inlined_func$~lib/map/Map#find36 + loop $while-continue|037 local.get $1 if local.get $1 @@ -13966,12 +13966,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/map/Map#find30 + br_if $__inlined_func$~lib/map/Map#find36 local.get $2 i32.const -2 i32.and local.set $1 - br $while-continue|031 + br $while-continue|037 end end i32.const 0 @@ -13993,7 +13993,7 @@ br $for-loop|4 end end - local.get $12 + local.get $3 i32.load $0 offset=20 i32.const 50 i32.ne @@ -14005,9 +14005,9 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 call $~lib/map/Map#clear - local.get $12 + local.get $3 i32.load $0 offset=20 if i32.const 0 @@ -14066,7 +14066,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -14074,7 +14074,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -14082,13 +14082,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 4 i32.shl i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 @@ -14096,23 +14096,23 @@ local.get $8 i32.ne if - local.get $8 + local.get $4 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 i64.load $0 local.tee $6 i64.store $0 local.get $2 - local.get $8 + local.get $4 i32.load $0 offset=8 i32.store $0 offset=8 local.get $2 - local.get $7 + local.get $5 local.get $1 local.get $6 i32.wrap_i64 @@ -14136,23 +14136,23 @@ i32.const 668265263 i32.mul local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $9 i32.xor i32.and i32.const 2 @@ -14169,20 +14169,20 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 16 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $5 i32.store $0 - local.get $7 + local.get $5 if local.get $0 - local.get $7 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -14198,7 +14198,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $7 i32.store $0 offset=12 local.get $0 local.get $0 @@ -14438,18 +14438,18 @@ (func $std/map/testNumeric (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 i64) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 i64) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i64) + (local $13 i32) (local $14 i32) (local $15 i32) (local $16 i32) @@ -14464,11 +14464,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.const 20 memory.fill $0 - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14477,10 +14477,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store $0 - local.get $3 + local.get $0 i32.const 24 i32.const 21 call $~lib/rt/itcms/__new @@ -14488,17 +14488,17 @@ i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store $0 offset=4 local.get $10 - local.get $3 + local.get $0 i32.store $0 - local.get $3 + local.get $0 if local.get $10 - local.get $3 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $10 @@ -14506,17 +14506,17 @@ i32.store $0 offset=4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store $0 offset=4 local.get $10 - local.get $3 + local.get $0 i32.store $0 offset=8 - local.get $3 + local.get $0 if local.get $10 - local.get $3 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $10 @@ -14532,11 +14532,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $10 i32.store $0 loop $for-loop|0 - local.get $2 + local.get $4 i64.const 100 i64.lt_s if @@ -14544,7 +14544,7 @@ i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -14554,7 +14554,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -14596,19 +14596,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -14628,8 +14628,8 @@ unreachable end local.get $10 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.wrap_i64 local.tee $0 i32.const 10 @@ -14648,7 +14648,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -14690,19 +14690,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -14723,9 +14723,9 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -14738,10 +14738,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i64.const 1 i64.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -14758,9 +14758,9 @@ unreachable end i64.const 0 - local.set $2 + local.set $4 loop $for-loop|1 - local.get $2 + local.get $4 i64.const 100 i64.lt_s if @@ -14768,7 +14768,7 @@ i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -14778,7 +14778,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -14820,19 +14820,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end br_if $__inlined_func$~lib/map/Map#find8 - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -14853,9 +14853,9 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -14869,8 +14869,8 @@ unreachable end local.get $10 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.wrap_i64 local.tee $0 i32.const 20 @@ -14889,7 +14889,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -14931,19 +14931,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -14964,9 +14964,9 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -14979,10 +14979,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i64.const 1 i64.add - local.set $2 + local.set $4 br $for-loop|1 end end @@ -14999,7 +14999,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $8 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15008,16 +15008,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $6 i32.const 0 i32.store $0 local.get $10 i32.load $0 offset=8 - local.set $4 + local.set $5 local.get $10 i32.load $0 offset=16 - local.set $5 - local.get $0 + local.set $3 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15026,28 +15026,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $0 i64.const 0 i64.store $0 - local.get $6 + local.get $0 i32.const 16 i32.const 22 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $2 i32.store $0 - local.get $11 + local.get $2 i32.const 0 i32.store $0 - local.get $11 + local.get $2 i32.const 0 i32.store $0 offset=4 - local.get $11 + local.get $2 i32.const 0 i32.store $0 offset=8 - local.get $11 + local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $5 + local.get $3 i32.const 134217727 i32.gt_u if @@ -15060,68 +15060,68 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.const 8 i32.le_u select i32.const 3 i32.shl - local.tee $6 + local.tee $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $0 i32.store $0 offset=4 - local.get $11 - local.get $7 + local.get $2 + local.get $0 i32.store $0 - local.get $7 + local.get $0 if - local.get $11 - local.get $7 + local.get $2 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $7 + local.get $2 + local.get $0 i32.store $0 offset=4 - local.get $11 - local.get $6 + local.get $2 + local.get $1 i32.store $0 offset=8 - local.get $11 - local.get $5 + local.get $2 + local.get $3 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $11 + local.get $6 + local.get $2 i32.store $0 i32.const 0 local.set $0 - loop $for-loop|04 - local.get $1 - local.get $5 - i32.lt_s + loop $for-loop|03 + local.get $3 + local.get $9 + i32.gt_s if - local.get $4 - local.get $1 + local.get $5 + local.get $9 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $1 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if - local.get $11 + local.get $2 i32.load $0 offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $6 + local.get $1 i64.load $0 i64.store $0 local.get $0 @@ -15129,34 +15129,34 @@ i32.add local.set $0 end - local.get $1 + local.get $9 i32.const 1 i32.add - local.set $1 - br $for-loop|04 + local.set $9 + br $for-loop|03 end end - local.get $11 + local.get $2 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $11 + local.get $2 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $11 + local.get $8 + local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer local.get $10 call $~lib/map/Map#values - local.tee $5 + local.tee $9 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -15166,76 +15166,76 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $13 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $12 - local.get $1 + local.get $13 + local.get $0 i32.store $0 - local.get $1 + local.get $0 if - local.get $12 - local.get $1 + local.get $13 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 3 i32.store $0 offset=4 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $12 - local.get $1 + local.get $13 + local.get $0 i32.store $0 offset=8 - local.get $1 + local.get $0 if - local.get $12 - local.get $1 + local.get $13 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 4 i32.store $0 offset=12 - local.get $12 + local.get $13 i32.const 0 i32.store $0 offset=16 - local.get $12 + local.get $13 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $12 + local.get $1 + local.get $13 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $8 i32.store $0 offset=16 loop $for-loop|2 - local.get $8 - local.get $11 + local.get $16 + local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $8 - local.get $11 + local.get $16 + local.get $2 i32.load $0 offset=12 i32.ge_u if @@ -15246,23 +15246,23 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $2 i32.load $0 offset=4 - local.get $8 + local.get $16 i32.const 3 i32.shl i32.add i64.load $0 - local.set $2 - local.get $5 - local.get $8 + local.set $7 + local.get $9 + local.get $16 call $~lib/array/Array#__get local.set $6 local.get $10 i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $7 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15272,7 +15272,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15308,8 +15308,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find41 - loop $while-continue|045 + block $__inlined_func$~lib/map/Map#find38 + loop $while-continue|042 local.get $0 if local.get $0 @@ -15320,17 +15320,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $7 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find41 + br_if $__inlined_func$~lib/map/Map#find38 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|045 + br $while-continue|042 end end i32.const 0 @@ -15354,7 +15354,7 @@ i32.const 20 i32.sub i64.extend_i32_s - local.tee $13 + local.tee $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15364,7 +15364,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $13 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15400,8 +15400,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find48 - loop $while-continue|052 + block $__inlined_func$~lib/map/Map#find45 + loop $while-continue|049 local.get $0 if local.get $0 @@ -15412,17 +15412,17 @@ if (result i32) i32.const 0 else - local.get $13 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find48 + br_if $__inlined_func$~lib/map/Map#find45 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|052 + br $while-continue|049 end end i32.const 0 @@ -15449,9 +15449,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $12 + local.get $13 i32.load $0 - local.get $2 + local.get $7 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15461,7 +15461,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15491,8 +15491,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $4 - local.get $12 + local.tee $5 + local.get $13 i32.load $0 offset=4 i32.and i32.const 2 @@ -15501,7 +15501,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|059 + loop $while-continue|056 local.get $0 if local.get $0 @@ -15512,7 +15512,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $7 local.get $0 i64.load $0 i64.eq @@ -15522,7 +15522,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|059 + br $while-continue|056 end end i32.const 0 @@ -15531,18 +15531,18 @@ local.get $0 if local.get $0 - local.get $2 + local.get $7 i64.store $0 offset=8 else - local.get $12 + local.get $13 i32.load $0 offset=16 - local.get $12 + local.get $13 i32.load $0 offset=12 i32.eq if - local.get $12 + local.get $13 i32.load $0 offset=20 - local.get $12 + local.get $13 i32.load $0 offset=12 i32.const 3 i32.mul @@ -15550,17 +15550,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $12 + local.get $13 i32.load $0 offset=4 else - local.get $12 + local.get $13 i32.load $0 offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -15574,14 +15574,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $14 + local.get $12 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $11 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15589,47 +15589,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $3 + local.tee $15 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store $0 offset=4 - local.get $12 + local.get $13 i32.load $0 offset=8 - local.tee $9 - local.get $12 + local.tee $17 + local.get $13 i32.load $0 offset=16 i32.const 24 i32.mul i32.add - local.set $16 + local.set $14 local.get $1 local.set $0 loop $while-continue|00 - local.get $9 - local.get $16 + local.get $14 + local.get $17 i32.ne if - local.get $9 + local.get $17 i32.load $0 offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $17 i64.load $0 - local.tee $13 + local.tee $4 i64.store $0 local.get $0 - local.get $9 + local.get $17 i64.load $0 offset=8 i64.store $0 offset=8 local.get $0 - local.get $15 - local.get $14 - local.get $13 + local.get $11 + local.get $12 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15639,7 +15639,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $13 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15650,22 +15650,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $17 - local.get $17 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $17 - local.get $17 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $17 - local.get $17 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -15673,10 +15673,10 @@ i32.const 2 i32.shl i32.add - local.tee $17 + local.tee $3 i32.load $0 i32.store $0 offset=16 - local.get $17 + local.get $3 local.get $0 i32.store $0 local.get $0 @@ -15684,39 +15684,39 @@ i32.add local.set $0 end - local.get $9 + local.get $17 i32.const 24 i32.add - local.set $9 + local.set $17 br $while-continue|00 end end - local.get $12 - local.get $15 + local.get $13 + local.get $11 i32.store $0 - local.get $15 + local.get $11 if - local.get $12 - local.get $15 + local.get $13 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $13 local.get $12 - local.get $14 i32.store $0 offset=4 - local.get $12 + local.get $13 local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $12 + local.get $13 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $3 + local.get $13 + local.get $15 i32.store $0 offset=12 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=20 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer @@ -15725,70 +15725,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.store $0 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=16 - local.tee $1 + local.tee $0 i32.const 1 i32.add i32.store $0 offset=16 - local.get $0 local.get $1 + local.get $0 i32.const 24 i32.mul i32.add - local.tee $0 - local.get $2 + local.tee $1 + local.get $7 i64.store $0 - local.get $0 - local.get $2 + local.get $1 + local.get $7 i64.store $0 offset=8 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=20 i32.const 1 i32.add i32.store $0 offset=20 - local.get $0 - local.get $12 + local.get $1 + local.get $13 i32.load $0 - local.get $4 - local.get $12 + local.get $5 + local.get $13 i32.load $0 offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $0 i32.load $0 i32.store $0 offset=16 - local.get $1 local.get $0 + local.get $1 i32.store $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 local.get $6 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $8 + local.get $16 i32.const 1 i32.add - local.set $8 + local.set $16 br $for-loop|2 end end - local.get $12 + local.get $13 i32.load $0 offset=20 i32.const 100 i32.ne @@ -15800,7 +15800,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $8 i32.load $0 offset=20 i32.const 100 i32.ne @@ -15813,9 +15813,9 @@ unreachable end i64.const 0 - local.set $2 + local.set $4 loop $for-loop|3 - local.get $2 + local.get $4 i64.const 50 i64.lt_s if @@ -15823,7 +15823,7 @@ i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15833,7 +15833,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15869,8 +15869,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find80 - loop $while-continue|084 + block $__inlined_func$~lib/map/Map#find77 + loop $while-continue|081 local.get $0 if local.get $0 @@ -15881,17 +15881,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find80 + br_if $__inlined_func$~lib/map/Map#find77 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|084 + br $while-continue|081 end end i32.const 0 @@ -15908,9 +15908,9 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -15924,13 +15924,13 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#delete local.get $10 i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15940,7 +15940,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15976,8 +15976,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find87 - loop $while-continue|091 + block $__inlined_func$~lib/map/Map#find84 + loop $while-continue|088 local.get $0 if local.get $0 @@ -15988,17 +15988,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find87 + br_if $__inlined_func$~lib/map/Map#find84 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|091 + br $while-continue|088 end end i32.const 0 @@ -16013,10 +16013,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i64.const 1 i64.add - local.set $2 + local.set $4 br $for-loop|3 end end @@ -16033,9 +16033,9 @@ unreachable end i64.const 0 - local.set $2 + local.set $4 loop $for-loop|4 - local.get $2 + local.get $4 i64.const 50 i64.lt_s if @@ -16043,7 +16043,7 @@ i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16053,7 +16053,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16089,8 +16089,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find96 - loop $while-continue|0100 + block $__inlined_func$~lib/map/Map#find93 + loop $while-continue|097 local.get $0 if local.get $0 @@ -16101,17 +16101,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find96 + br_if $__inlined_func$~lib/map/Map#find93 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0100 + br $while-continue|097 end end i32.const 0 @@ -16127,8 +16127,8 @@ unreachable end local.get $10 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.wrap_i64 local.tee $0 i32.const 10 @@ -16147,7 +16147,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16183,8 +16183,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find103 - loop $while-continue|0107 + block $__inlined_func$~lib/map/Map#find100 + loop $while-continue|0104 local.get $0 if local.get $0 @@ -16195,17 +16195,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find103 + br_if $__inlined_func$~lib/map/Map#find100 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0107 + br $while-continue|0104 end end i32.const 0 @@ -16222,13 +16222,13 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#delete local.get $10 i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16238,7 +16238,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16274,8 +16274,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find110 - loop $while-continue|0114 + block $__inlined_func$~lib/map/Map#find107 + loop $while-continue|0111 local.get $0 if local.get $0 @@ -16286,17 +16286,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find110 + br_if $__inlined_func$~lib/map/Map#find107 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0114 + br $while-continue|0111 end end i32.const 0 @@ -16311,10 +16311,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i64.const 1 i64.add - local.set $2 + local.set $4 br $for-loop|4 end end @@ -16391,7 +16391,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -16399,7 +16399,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16407,13 +16407,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 4 i32.shl i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 @@ -16421,23 +16421,23 @@ local.get $8 i32.ne if - local.get $8 + local.get $4 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 i64.load $0 local.tee $6 i64.store $0 local.get $2 - local.get $8 + local.get $4 i32.load $0 offset=8 i32.store $0 offset=8 local.get $2 - local.get $7 + local.get $5 local.get $1 local.get $6 i32.wrap_i64 @@ -16461,23 +16461,23 @@ i32.const 668265263 i32.mul local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $9 i32.xor i32.and i32.const 2 @@ -16494,20 +16494,20 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 16 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $5 i32.store $0 - local.get $7 + local.get $5 if local.get $0 - local.get $7 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -16523,7 +16523,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $7 i32.store $0 offset=12 local.get $0 local.get $0 @@ -16763,18 +16763,18 @@ (func $std/map/testNumeric (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 i64) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 i64) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i64) + (local $13 i32) (local $14 i32) (local $15 i32) (local $16 i32) @@ -16789,11 +16789,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.const 20 memory.fill $0 - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -16802,10 +16802,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store $0 - local.get $3 + local.get $0 i32.const 24 i32.const 24 call $~lib/rt/itcms/__new @@ -16813,17 +16813,17 @@ i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store $0 offset=4 local.get $10 - local.get $3 + local.get $0 i32.store $0 - local.get $3 + local.get $0 if local.get $10 - local.get $3 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $10 @@ -16831,17 +16831,17 @@ i32.store $0 offset=4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store $0 offset=4 local.get $10 - local.get $3 + local.get $0 i32.store $0 offset=8 - local.get $3 + local.get $0 if local.get $10 - local.get $3 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $10 @@ -16857,11 +16857,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $10 i32.store $0 loop $for-loop|0 - local.get $2 + local.get $4 i64.const 100 i64.lt_u if @@ -16869,7 +16869,7 @@ i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16879,7 +16879,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16921,19 +16921,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -16953,8 +16953,8 @@ unreachable end local.get $10 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.wrap_i64 local.tee $0 i32.const 10 @@ -16973,7 +16973,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17015,19 +17015,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -17048,9 +17048,9 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17063,10 +17063,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i64.const 1 i64.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -17083,9 +17083,9 @@ unreachable end i64.const 0 - local.set $2 + local.set $4 loop $for-loop|1 - local.get $2 + local.get $4 i64.const 100 i64.lt_u if @@ -17093,7 +17093,7 @@ i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17103,7 +17103,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17145,19 +17145,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end br_if $__inlined_func$~lib/map/Map#find8 - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -17178,9 +17178,9 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17194,8 +17194,8 @@ unreachable end local.get $10 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.wrap_i64 local.tee $0 i32.const 20 @@ -17214,7 +17214,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17256,19 +17256,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -17289,9 +17289,9 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -17304,10 +17304,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i64.const 1 i64.add - local.set $2 + local.set $4 br $for-loop|1 end end @@ -17324,7 +17324,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $8 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17333,16 +17333,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $6 i32.const 0 i32.store $0 local.get $10 i32.load $0 offset=8 - local.set $4 + local.set $5 local.get $10 i32.load $0 offset=16 - local.set $5 - local.get $0 + local.set $3 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17351,28 +17351,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $0 i64.const 0 i64.store $0 - local.get $6 + local.get $0 i32.const 16 i32.const 25 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $2 i32.store $0 - local.get $11 + local.get $2 i32.const 0 i32.store $0 - local.get $11 + local.get $2 i32.const 0 i32.store $0 offset=4 - local.get $11 + local.get $2 i32.const 0 i32.store $0 offset=8 - local.get $11 + local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $5 + local.get $3 i32.const 134217727 i32.gt_u if @@ -17385,68 +17385,68 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $5 - local.get $5 + local.get $3 + local.get $3 i32.const 8 i32.le_u select i32.const 3 i32.shl - local.tee $6 + local.tee $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $0 i32.store $0 offset=4 - local.get $11 - local.get $7 + local.get $2 + local.get $0 i32.store $0 - local.get $7 + local.get $0 if - local.get $11 - local.get $7 + local.get $2 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $7 + local.get $2 + local.get $0 i32.store $0 offset=4 - local.get $11 - local.get $6 + local.get $2 + local.get $1 i32.store $0 offset=8 - local.get $11 - local.get $5 + local.get $2 + local.get $3 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $11 + local.get $6 + local.get $2 i32.store $0 i32.const 0 local.set $0 - loop $for-loop|04 - local.get $1 - local.get $5 - i32.lt_s + loop $for-loop|03 + local.get $3 + local.get $9 + i32.gt_s if - local.get $4 - local.get $1 + local.get $5 + local.get $9 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $1 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if - local.get $11 + local.get $2 i32.load $0 offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $6 + local.get $1 i64.load $0 i64.store $0 local.get $0 @@ -17454,34 +17454,34 @@ i32.add local.set $0 end - local.get $1 + local.get $9 i32.const 1 i32.add - local.set $1 - br $for-loop|04 + local.set $9 + br $for-loop|03 end end - local.get $11 + local.get $2 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $11 + local.get $2 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $11 + local.get $8 + local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer local.get $10 call $~lib/map/Map#values - local.tee $5 + local.tee $9 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -17491,76 +17491,76 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $13 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $12 - local.get $1 + local.get $13 + local.get $0 i32.store $0 - local.get $1 + local.get $0 if - local.get $12 - local.get $1 + local.get $13 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 3 i32.store $0 offset=4 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $12 - local.get $1 + local.get $13 + local.get $0 i32.store $0 offset=8 - local.get $1 + local.get $0 if - local.get $12 - local.get $1 + local.get $13 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 4 i32.store $0 offset=12 - local.get $12 + local.get $13 i32.const 0 i32.store $0 offset=16 - local.get $12 + local.get $13 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $12 + local.get $1 + local.get $13 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $8 i32.store $0 offset=16 loop $for-loop|2 - local.get $8 - local.get $11 + local.get $16 + local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $8 - local.get $11 + local.get $16 + local.get $2 i32.load $0 offset=12 i32.ge_u if @@ -17571,23 +17571,23 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $2 i32.load $0 offset=4 - local.get $8 + local.get $16 i32.const 3 i32.shl i32.add i64.load $0 - local.set $2 - local.get $5 - local.get $8 + local.set $7 + local.get $9 + local.get $16 call $~lib/array/Array#__get local.set $6 local.get $10 i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $7 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17597,7 +17597,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17633,8 +17633,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find41 - loop $while-continue|045 + block $__inlined_func$~lib/map/Map#find38 + loop $while-continue|042 local.get $0 if local.get $0 @@ -17645,17 +17645,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $7 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find41 + br_if $__inlined_func$~lib/map/Map#find38 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|045 + br $while-continue|042 end end i32.const 0 @@ -17679,7 +17679,7 @@ i32.const 20 i32.sub i64.extend_i32_s - local.tee $13 + local.tee $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17689,7 +17689,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $13 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17725,8 +17725,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find48 - loop $while-continue|052 + block $__inlined_func$~lib/map/Map#find45 + loop $while-continue|049 local.get $0 if local.get $0 @@ -17737,17 +17737,17 @@ if (result i32) i32.const 0 else - local.get $13 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find48 + br_if $__inlined_func$~lib/map/Map#find45 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|052 + br $while-continue|049 end end i32.const 0 @@ -17774,9 +17774,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $12 + local.get $13 i32.load $0 - local.get $2 + local.get $7 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17786,7 +17786,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17816,8 +17816,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $4 - local.get $12 + local.tee $5 + local.get $13 i32.load $0 offset=4 i32.and i32.const 2 @@ -17826,7 +17826,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|059 + loop $while-continue|056 local.get $0 if local.get $0 @@ -17837,7 +17837,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $7 local.get $0 i64.load $0 i64.eq @@ -17847,7 +17847,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|059 + br $while-continue|056 end end i32.const 0 @@ -17856,18 +17856,18 @@ local.get $0 if local.get $0 - local.get $2 + local.get $7 i64.store $0 offset=8 else - local.get $12 + local.get $13 i32.load $0 offset=16 - local.get $12 + local.get $13 i32.load $0 offset=12 i32.eq if - local.get $12 + local.get $13 i32.load $0 offset=20 - local.get $12 + local.get $13 i32.load $0 offset=12 i32.const 3 i32.mul @@ -17875,17 +17875,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $12 + local.get $13 i32.load $0 offset=4 else - local.get $12 + local.get $13 i32.load $0 offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $14 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -17899,14 +17899,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $14 + local.get $12 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $11 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -17914,47 +17914,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $3 + local.tee $15 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store $0 offset=4 - local.get $12 + local.get $13 i32.load $0 offset=8 - local.tee $9 - local.get $12 + local.tee $17 + local.get $13 i32.load $0 offset=16 i32.const 24 i32.mul i32.add - local.set $16 + local.set $14 local.get $1 local.set $0 loop $while-continue|00 - local.get $9 - local.get $16 + local.get $14 + local.get $17 i32.ne if - local.get $9 + local.get $17 i32.load $0 offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $17 i64.load $0 - local.tee $13 + local.tee $4 i64.store $0 local.get $0 - local.get $9 + local.get $17 i64.load $0 offset=8 i64.store $0 offset=8 local.get $0 - local.get $15 - local.get $14 - local.get $13 + local.get $11 + local.get $12 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17964,7 +17964,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $13 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17975,22 +17975,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $17 - local.get $17 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $17 - local.get $17 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $17 - local.get $17 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -17998,10 +17998,10 @@ i32.const 2 i32.shl i32.add - local.tee $17 + local.tee $3 i32.load $0 i32.store $0 offset=16 - local.get $17 + local.get $3 local.get $0 i32.store $0 local.get $0 @@ -18009,39 +18009,39 @@ i32.add local.set $0 end - local.get $9 + local.get $17 i32.const 24 i32.add - local.set $9 + local.set $17 br $while-continue|00 end end - local.get $12 - local.get $15 + local.get $13 + local.get $11 i32.store $0 - local.get $15 + local.get $11 if - local.get $12 - local.get $15 + local.get $13 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $13 local.get $12 - local.get $14 i32.store $0 offset=4 - local.get $12 + local.get $13 local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $12 + local.get $13 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $3 + local.get $13 + local.get $15 i32.store $0 offset=12 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=20 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer @@ -18050,70 +18050,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.store $0 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=16 - local.tee $1 + local.tee $0 i32.const 1 i32.add i32.store $0 offset=16 - local.get $0 local.get $1 + local.get $0 i32.const 24 i32.mul i32.add - local.tee $0 - local.get $2 + local.tee $1 + local.get $7 i64.store $0 - local.get $0 - local.get $2 + local.get $1 + local.get $7 i64.store $0 offset=8 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load $0 offset=20 i32.const 1 i32.add i32.store $0 offset=20 - local.get $0 - local.get $12 + local.get $1 + local.get $13 i32.load $0 - local.get $4 - local.get $12 + local.get $5 + local.get $13 i32.load $0 offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $0 i32.load $0 i32.store $0 offset=16 - local.get $1 local.get $0 + local.get $1 i32.store $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 local.get $6 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $8 + local.get $16 i32.const 1 i32.add - local.set $8 + local.set $16 br $for-loop|2 end end - local.get $12 + local.get $13 i32.load $0 offset=20 i32.const 100 i32.ne @@ -18125,7 +18125,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $8 i32.load $0 offset=20 i32.const 100 i32.ne @@ -18138,9 +18138,9 @@ unreachable end i64.const 0 - local.set $2 + local.set $4 loop $for-loop|3 - local.get $2 + local.get $4 i64.const 50 i64.lt_u if @@ -18148,7 +18148,7 @@ i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18158,7 +18158,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18194,8 +18194,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find80 - loop $while-continue|084 + block $__inlined_func$~lib/map/Map#find77 + loop $while-continue|081 local.get $0 if local.get $0 @@ -18206,17 +18206,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find80 + br_if $__inlined_func$~lib/map/Map#find77 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|084 + br $while-continue|081 end end i32.const 0 @@ -18233,9 +18233,9 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -18249,13 +18249,13 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#delete local.get $10 i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18265,7 +18265,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18301,8 +18301,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find87 - loop $while-continue|091 + block $__inlined_func$~lib/map/Map#find84 + loop $while-continue|088 local.get $0 if local.get $0 @@ -18313,17 +18313,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find87 + br_if $__inlined_func$~lib/map/Map#find84 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|091 + br $while-continue|088 end end i32.const 0 @@ -18338,10 +18338,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i64.const 1 i64.add - local.set $2 + local.set $4 br $for-loop|3 end end @@ -18358,9 +18358,9 @@ unreachable end i64.const 0 - local.set $2 + local.set $4 loop $for-loop|4 - local.get $2 + local.get $4 i64.const 50 i64.lt_u if @@ -18368,7 +18368,7 @@ i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18378,7 +18378,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18414,8 +18414,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find96 - loop $while-continue|0100 + block $__inlined_func$~lib/map/Map#find93 + loop $while-continue|097 local.get $0 if local.get $0 @@ -18426,17 +18426,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find96 + br_if $__inlined_func$~lib/map/Map#find93 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0100 + br $while-continue|097 end end i32.const 0 @@ -18452,8 +18452,8 @@ unreachable end local.get $10 - local.get $2 - local.get $2 + local.get $4 + local.get $4 i32.wrap_i64 local.tee $0 i32.const 10 @@ -18472,7 +18472,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18508,8 +18508,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find103 - loop $while-continue|0107 + block $__inlined_func$~lib/map/Map#find100 + loop $while-continue|0104 local.get $0 if local.get $0 @@ -18520,17 +18520,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find103 + br_if $__inlined_func$~lib/map/Map#find100 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0107 + br $while-continue|0104 end end i32.const 0 @@ -18547,13 +18547,13 @@ unreachable end local.get $10 - local.get $2 + local.get $4 call $~lib/map/Map#delete local.get $10 i32.load $0 local.get $10 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18563,7 +18563,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18599,8 +18599,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find110 - loop $while-continue|0114 + block $__inlined_func$~lib/map/Map#find107 + loop $while-continue|0111 local.get $0 if local.get $0 @@ -18611,17 +18611,17 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $4 local.get $0 i64.load $0 i64.eq end - br_if $__inlined_func$~lib/map/Map#find110 + br_if $__inlined_func$~lib/map/Map#find107 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0114 + br $while-continue|0111 end end i32.const 0 @@ -18636,10 +18636,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i64.const 1 i64.add - local.set $2 + local.set $4 br $for-loop|4 end end @@ -18683,11 +18683,11 @@ (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f32) (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -18716,7 +18716,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -18732,39 +18732,39 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $5 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $8 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 f32.load $0 - local.tee $4 + local.tee $8 f32.store $0 local.get $2 - local.get $8 + local.get $4 i32.load $0 offset=4 i32.store $0 offset=4 local.get $2 - local.get $7 + local.get $5 local.get $1 - local.get $4 + local.get $8 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18775,23 +18775,23 @@ i32.const 668265263 i32.mul local.tee $9 - local.get $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 - local.get $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 - local.get $9 i32.const 16 i32.shr_u + local.get $9 i32.xor i32.and i32.const 2 @@ -18808,20 +18808,20 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 12 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $5 i32.store $0 - local.get $7 + local.get $5 if local.get $0 - local.get $7 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -19055,17 +19055,17 @@ (func $std/map/testNumeric (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 f32) + (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f32) (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 f32) + (local $12 i32) (local $13 i32) (local $14 i32) (local $15 i32) @@ -19081,11 +19081,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.const 20 memory.fill $0 - local.get $1 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -19094,74 +19094,74 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store $0 - local.get $4 + local.get $0 i32.const 24 i32.const 27 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $11 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store $0 offset=4 - local.get $9 - local.get $4 + local.get $11 + local.get $0 i32.store $0 - local.get $4 + local.get $0 if - local.get $9 - local.get $4 + local.get $11 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $11 i32.const 3 i32.store $0 offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store $0 offset=4 - local.get $9 - local.get $4 + local.get $11 + local.get $0 i32.store $0 offset=8 - local.get $4 + local.get $0 if - local.get $9 - local.get $4 + local.get $11 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $11 i32.const 4 i32.store $0 offset=12 - local.get $9 + local.get $11 i32.const 0 i32.store $0 offset=16 - local.get $9 + local.get $11 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $9 + local.get $2 + local.get $11 i32.store $0 loop $for-loop|0 - local.get $2 + local.get $4 f32.const 100 f32.lt if - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19171,22 +19171,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -19195,36 +19195,36 @@ i32.shl i32.add i32.load $0 - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -19233,18 +19233,18 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 - local.get $2 + local.get $11 + local.get $4 + local.get $4 i32.trunc_sat_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19254,22 +19254,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -19278,36 +19278,36 @@ i32.shl i32.add i32.load $0 - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -19317,10 +19317,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 + local.get $11 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.trunc_sat_f32_s i32.const 10 i32.add @@ -19333,14 +19333,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 f32.const 1 f32.add - local.set $2 + local.set $4 br $for-loop|0 end end - local.get $9 + local.get $11 i32.load $0 offset=20 i32.const 100 i32.ne @@ -19353,17 +19353,17 @@ unreachable end f32.const 0 - local.set $2 + local.set $4 loop $for-loop|1 - local.get $2 + local.get $4 f32.const 100 f32.lt if - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19373,23 +19373,23 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 - i32.const 16 + local.tee $0 + local.get $0 + i32.const 16 i32.shr_u i32.xor i32.and @@ -19397,36 +19397,36 @@ i32.shl i32.add i32.load $0 - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -19436,10 +19436,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 + local.get $11 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.trunc_sat_f32_s i32.const 10 i32.add @@ -19452,18 +19452,18 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 - local.get $2 + local.get $11 + local.get $4 + local.get $4 i32.trunc_sat_f32_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19473,22 +19473,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -19497,36 +19497,36 @@ i32.shl i32.add i32.load $0 - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -19536,10 +19536,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 + local.get $11 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.trunc_sat_f32_s i32.const 20 i32.add @@ -19552,14 +19552,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 f32.const 1 f32.add - local.set $2 + local.set $4 br $for-loop|1 end end - local.get $9 + local.get $11 i32.load $0 offset=20 i32.const 100 i32.ne @@ -19572,7 +19572,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -19581,16 +19581,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $7 i32.const 0 i32.store $0 - local.get $9 + local.get $11 i32.load $0 offset=8 - local.set $5 - local.get $9 - i32.load $0 offset=16 local.set $6 - local.get $4 + local.get $11 + i32.load $0 offset=16 + local.set $5 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -19599,28 +19599,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $0 i64.const 0 i64.store $0 - local.get $8 + local.get $0 i32.const 16 i32.const 28 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $2 i32.store $0 - local.get $10 + local.get $2 i32.const 0 i32.store $0 - local.get $10 + local.get $2 i32.const 0 i32.store $0 offset=4 - local.get $10 + local.get $2 i32.const 0 i32.store $0 offset=8 - local.get $10 + local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $6 + local.get $5 i32.const 268435455 i32.gt_u if @@ -19633,101 +19633,101 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $6 - local.get $6 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $8 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $0 i32.store $0 offset=4 - local.get $10 - local.get $11 + local.get $2 + local.get $0 i32.store $0 - local.get $11 + local.get $0 if - local.get $10 - local.get $11 + local.get $2 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 - local.get $11 + local.get $2 + local.get $0 i32.store $0 offset=4 - local.get $10 - local.get $8 + local.get $2 + local.get $3 i32.store $0 offset=8 - local.get $10 - local.get $6 + local.get $2 + local.get $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $10 + local.get $7 + local.get $2 i32.store $0 - loop $for-loop|01 - local.get $3 - local.get $6 - i32.lt_s + loop $for-loop|00 + local.get $5 + local.get $10 + i32.gt_s if - local.get $5 - local.get $3 + local.get $6 + local.get $10 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $0 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $2 i32.load $0 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $4 + local.get $0 f32.load $0 f32.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 end - local.get $3 + local.get $10 i32.const 1 i32.add - local.set $3 - br $for-loop|01 + local.set $10 + br $for-loop|00 end end - local.get $10 - local.get $0 + local.get $2 + local.get $1 i32.const 2 call $~lib/array/ensureCapacity - local.get $10 - local.get $0 + local.get $2 + local.get $1 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $10 + local.get $9 + local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 call $~lib/map/Map#values - local.tee $4 + local.tee $10 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -19737,76 +19737,76 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $14 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $11 - local.get $1 + local.get $14 + local.get $0 i32.store $0 - local.get $1 + local.get $0 if - local.get $11 - local.get $1 + local.get $14 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $14 i32.const 3 i32.store $0 offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $11 - local.get $1 + local.get $14 + local.get $0 i32.store $0 offset=8 - local.get $1 + local.get $0 if - local.get $11 - local.get $1 + local.get $14 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $14 i32.const 4 i32.store $0 offset=12 - local.get $11 + local.get $14 i32.const 0 i32.store $0 offset=16 - local.get $11 + local.get $14 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $11 + local.get $1 + local.get $14 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $9 i32.store $0 offset=16 loop $for-loop|2 - local.get $7 - local.get $10 + local.get $16 + local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $7 - local.get $10 + local.get $16 + local.get $2 i32.load $0 offset=12 i32.ge_u if @@ -19817,23 +19817,23 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $2 i32.load $0 offset=4 - local.get $7 + local.get $16 i32.const 2 i32.shl i32.add f32.load $0 - local.set $2 - local.get $4 - local.get $7 + local.set $8 + local.get $10 + local.get $16 call $~lib/array/Array#__get - local.set $5 - local.get $9 + local.set $7 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $8 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19867,36 +19867,36 @@ i32.shl i32.add i32.load $0 - local.set $0 - block $__inlined_func$~lib/map/Map#find10 - loop $while-continue|011 - local.get $0 + local.set $1 + block $__inlined_func$~lib/map/Map#find14 + loop $while-continue|015 + local.get $1 if - local.get $0 + local.get $1 i32.load $0 offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load $0 - local.get $2 + local.get $8 f32.eq end - br_if $__inlined_func$~lib/map/Map#find10 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find14 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -19906,15 +19906,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $5 + local.get $7 i32.const 20 i32.sub f32.convert_i32_s - local.tee $12 + local.tee $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19948,36 +19948,36 @@ i32.shl i32.add i32.load $0 - local.set $0 - block $__inlined_func$~lib/map/Map#find13 - loop $while-continue|014 - local.get $0 + local.set $1 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 + local.get $1 if - local.get $0 + local.get $1 i32.load $0 offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load $0 - local.get $12 + local.get $4 f32.eq end - br_if $__inlined_func$~lib/map/Map#find13 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find17 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|018 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -19998,9 +19998,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $11 + local.get $14 i32.load $0 - local.get $2 + local.get $8 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20029,58 +20029,58 @@ i32.shr_u local.get $0 i32.xor - local.tee $3 - local.get $11 + local.tee $6 + local.get $14 i32.load $0 offset=4 i32.and i32.const 2 i32.shl i32.add i32.load $0 - local.set $0 - block $__inlined_func$~lib/map/Map#find15 - loop $while-continue|016 - local.get $0 + local.set $1 + block $__inlined_func$~lib/map/Map#find19 + loop $while-continue|020 + local.get $1 if - local.get $0 + local.get $1 i32.load $0 offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $8 + local.get $1 f32.load $0 f32.eq end - br_if $__inlined_func$~lib/map/Map#find15 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find19 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|016 + local.set $1 + br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $2 + local.get $1 + local.get $8 f32.store $0 offset=4 else - local.get $11 + local.get $14 i32.load $0 offset=16 - local.get $11 + local.get $14 i32.load $0 offset=12 i32.eq if - local.get $11 + local.get $14 i32.load $0 offset=20 - local.get $11 + local.get $14 i32.load $0 offset=12 i32.const 3 i32.mul @@ -20088,10 +20088,10 @@ i32.div_s i32.lt_s if (result i32) - local.get $11 + local.get $14 i32.load $0 offset=4 else - local.get $11 + local.get $14 i32.load $0 offset=4 i32.const 1 i32.shl @@ -20119,7 +20119,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $12 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -20127,47 +20127,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store $0 offset=4 - local.get $11 + local.get $14 i32.load $0 offset=8 - local.tee $8 - local.get $11 + local.tee $17 + local.get $14 i32.load $0 offset=16 i32.const 12 i32.mul i32.add - local.set $16 + local.set $15 local.get $1 local.set $0 loop $while-continue|00 - local.get $8 - local.get $16 + local.get $15 + local.get $17 i32.ne if - local.get $8 + local.get $17 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $8 + local.get $17 f32.load $0 - local.tee $12 + local.tee $4 f32.store $0 local.get $0 - local.get $8 + local.get $17 f32.load $0 offset=4 f32.store $0 offset=4 local.get $0 - local.get $14 - local.get $13 local.get $12 + local.get $13 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20177,33 +20177,33 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $17 + local.tee $3 i32.const 15 i32.shr_u - local.get $17 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $17 + local.tee $3 i32.const 13 i32.shr_u - local.get $17 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $17 + local.tee $3 i32.const 16 i32.shr_u - local.get $17 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $17 + local.tee $3 i32.load $0 i32.store $0 offset=8 - local.get $17 + local.get $3 local.get $0 i32.store $0 local.get $0 @@ -20211,39 +20211,39 @@ i32.add local.set $0 end - local.get $8 + local.get $17 i32.const 12 i32.add - local.set $8 + local.set $17 br $while-continue|00 end end - local.get $11 local.get $14 + local.get $12 i32.store $0 - local.get $14 + local.get $12 if - local.get $11 local.get $14 + local.get $12 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $14 local.get $13 i32.store $0 offset=4 - local.get $11 + local.get $14 local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $11 + local.get $14 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $15 + local.get $14 + local.get $5 i32.store $0 offset=12 - local.get $11 - local.get $11 + local.get $14 + local.get $14 i32.load $0 offset=20 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer @@ -20252,70 +20252,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $14 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.store $0 - local.get $11 - local.get $11 + local.get $14 + local.get $14 i32.load $0 offset=16 - local.tee $1 + local.tee $0 i32.const 1 i32.add i32.store $0 offset=16 - local.get $0 local.get $1 + local.get $0 i32.const 12 i32.mul i32.add - local.tee $0 - local.get $2 + local.tee $1 + local.get $8 f32.store $0 - local.get $0 - local.get $2 + local.get $1 + local.get $8 f32.store $0 offset=4 - local.get $11 - local.get $11 + local.get $14 + local.get $14 i32.load $0 offset=20 i32.const 1 i32.add i32.store $0 offset=20 - local.get $0 - local.get $11 + local.get $1 + local.get $14 i32.load $0 - local.get $3 - local.get $11 + local.get $6 + local.get $14 i32.load $0 offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $0 i32.load $0 i32.store $0 offset=8 - local.get $1 local.get $0 + local.get $1 i32.store $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $5 + local.get $9 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $7 + local.get $16 i32.const 1 i32.add - local.set $7 + local.set $16 br $for-loop|2 end end - local.get $11 + local.get $14 i32.load $0 offset=20 i32.const 100 i32.ne @@ -20327,7 +20327,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $9 i32.load $0 offset=20 i32.const 100 i32.ne @@ -20340,17 +20340,17 @@ unreachable end f32.const 0 - local.set $2 + local.set $4 loop $for-loop|3 - local.get $2 + local.get $4 f32.const 50 f32.lt if - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20384,36 +20384,36 @@ i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/map/Map#find18 - loop $while-continue|019 - local.get $1 + local.set $0 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end - br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find24 + local.get $1 i32.const -2 i32.and - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|025 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -20423,10 +20423,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 + local.get $11 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.trunc_sat_f32_s i32.const 20 i32.add @@ -20439,14 +20439,14 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 + local.get $11 + local.get $4 call $~lib/map/Map#delete - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20480,36 +20480,36 @@ i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/map/Map#find21 - loop $while-continue|022 - local.get $1 + local.set $0 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end - br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find27 + local.get $1 i32.const -2 i32.and - local.set $1 - br $while-continue|022 + local.set $0 + br $while-continue|028 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -20518,14 +20518,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 f32.const 1 f32.add - local.set $2 + local.set $4 br $for-loop|3 end end - local.get $9 + local.get $11 i32.load $0 offset=20 i32.const 50 i32.ne @@ -20538,17 +20538,17 @@ unreachable end f32.const 0 - local.set $2 + local.set $4 loop $for-loop|4 - local.get $2 + local.get $4 f32.const 50 f32.lt if - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20582,36 +20582,36 @@ i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/map/Map#find24 - loop $while-continue|025 - local.get $1 + local.set $0 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end - br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find30 + local.get $1 i32.const -2 i32.and - local.set $1 - br $while-continue|025 + local.set $0 + br $while-continue|031 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -20620,18 +20620,18 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 - local.get $2 + local.get $11 + local.get $4 + local.get $4 i32.trunc_sat_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20665,36 +20665,36 @@ i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/map/Map#find27 - loop $while-continue|028 - local.get $1 + local.set $0 + block $__inlined_func$~lib/map/Map#find33 + loop $while-continue|034 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end - br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find33 + local.get $1 i32.const -2 i32.and - local.set $1 - br $while-continue|028 + local.set $0 + br $while-continue|034 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -20704,14 +20704,14 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $2 + local.get $11 + local.get $4 call $~lib/map/Map#delete - local.get $9 + local.get $11 i32.load $0 - local.get $9 + local.get $11 i32.load $0 offset=4 - local.get $2 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20745,36 +20745,36 @@ i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/map/Map#find30 - loop $while-continue|031 - local.get $1 + local.set $0 + block $__inlined_func$~lib/map/Map#find36 + loop $while-continue|037 + local.get $0 if - local.get $1 + local.get $0 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 f32.load $0 - local.get $2 + local.get $4 f32.eq end - br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find36 + local.get $1 i32.const -2 i32.and - local.set $1 - br $while-continue|031 + local.set $0 + br $while-continue|037 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -20783,14 +20783,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 f32.const 1 f32.add - local.set $2 + local.set $4 br $for-loop|4 end end - local.get $9 + local.get $11 i32.load $0 offset=20 i32.const 50 i32.ne @@ -20802,9 +20802,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $11 call $~lib/map/Map#clear - local.get $9 + local.get $11 i32.load $0 offset=20 if i32.const 0 @@ -20830,12 +20830,12 @@ (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $8 f64) + (local $9 i64) (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -20864,7 +20864,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -20872,7 +20872,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20880,41 +20880,41 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $9 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 4 i32.shl i32.add - local.set $6 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 - local.get $6 - local.get $9 + local.get $4 + local.get $7 i32.ne if - local.get $9 + local.get $4 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $9 + local.get $4 f64.load $0 - local.tee $5 + local.tee $8 f64.store $0 local.get $2 - local.get $9 + local.get $4 i32.load $0 offset=8 i32.store $0 offset=8 local.get $2 - local.get $8 - local.get $1 local.get $5 + local.get $1 + local.get $8 i64.reinterpret_f64 - local.tee $4 + local.tee $9 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20924,7 +20924,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $9 i64.const 32 i64.shr_u i32.wrap_i64 @@ -20936,23 +20936,23 @@ i32.const 668265263 i32.mul local.tee $10 + local.get $10 i32.const 15 i32.shr_u - local.get $10 i32.xor i32.const -2048144777 i32.mul local.tee $10 + local.get $10 i32.const 13 i32.shr_u - local.get $10 i32.xor i32.const -1028477379 i32.mul local.tee $10 + local.get $10 i32.const 16 i32.shr_u - local.get $10 i32.xor i32.and i32.const 2 @@ -20969,20 +20969,20 @@ i32.add local.set $2 end - local.get $9 + local.get $4 i32.const 16 i32.add - local.set $9 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $8 + local.get $5 i32.store $0 - local.get $8 + local.get $5 if local.get $0 - local.get $8 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -20998,7 +20998,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $7 + local.get $6 i32.store $0 offset=12 local.get $0 local.get $0 @@ -21244,19 +21244,19 @@ (func $std/map/testNumeric (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 i64) - (local $3 f64) + (local $2 i32) + (local $3 i64) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f64) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 f64) + (local $14 i32) (local $15 i32) (local $16 i32) (local $17 i32) @@ -21271,11 +21271,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.const 20 memory.fill $0 - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -21284,10 +21284,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store $0 - local.get $4 + local.get $0 i32.const 24 i32.const 30 call $~lib/rt/itcms/__new @@ -21295,17 +21295,17 @@ i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store $0 offset=4 local.get $11 - local.get $4 + local.get $0 i32.store $0 - local.get $4 + local.get $0 if local.get $11 - local.get $4 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $11 @@ -21313,17 +21313,17 @@ i32.store $0 offset=4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store $0 offset=4 local.get $11 - local.get $4 + local.get $0 i32.store $0 offset=8 - local.get $4 + local.get $0 if local.get $11 - local.get $4 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $11 @@ -21339,11 +21339,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $11 i32.store $0 loop $for-loop|0 - local.get $3 + local.get $5 f64.const 100 f64.lt if @@ -21351,9 +21351,9 @@ i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21363,7 +21363,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21405,19 +21405,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $4 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $1 i32.const -2 i32.and local.set $0 @@ -21437,8 +21437,8 @@ unreachable end local.get $11 - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.trunc_sat_f64_s i32.const 10 i32.add @@ -21447,9 +21447,9 @@ i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21459,7 +21459,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21501,19 +21501,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $4 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $1 i32.const -2 i32.and local.set $0 @@ -21534,9 +21534,9 @@ unreachable end local.get $11 - local.get $3 + local.get $5 call $~lib/map/Map#get - local.get $3 + local.get $5 i32.trunc_sat_f64_s i32.const 10 i32.add @@ -21549,10 +21549,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 f64.const 1 f64.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -21569,9 +21569,9 @@ unreachable end f64.const 0 - local.set $3 + local.set $5 loop $for-loop|1 - local.get $3 + local.get $5 f64.const 100 f64.lt if @@ -21579,9 +21579,9 @@ i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21591,7 +21591,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21633,19 +21633,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $4 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/map/Map#find8 - local.get $4 + local.get $1 i32.const -2 i32.and local.set $0 @@ -21666,9 +21666,9 @@ unreachable end local.get $11 - local.get $3 + local.get $5 call $~lib/map/Map#get - local.get $3 + local.get $5 i32.trunc_sat_f64_s i32.const 10 i32.add @@ -21682,8 +21682,8 @@ unreachable end local.get $11 - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.trunc_sat_f64_s i32.const 20 i32.add @@ -21692,9 +21692,9 @@ i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21704,7 +21704,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21746,19 +21746,19 @@ if local.get $0 i32.load $0 offset=12 - local.tee $4 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $4 + local.get $1 i32.const -2 i32.and local.set $0 @@ -21779,9 +21779,9 @@ unreachable end local.get $11 - local.get $3 + local.get $5 call $~lib/map/Map#get - local.get $3 + local.get $5 i32.trunc_sat_f64_s i32.const 20 i32.add @@ -21794,10 +21794,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 f64.const 1 f64.add - local.set $3 + local.set $5 br $for-loop|1 end end @@ -21814,7 +21814,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21823,16 +21823,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $7 i32.const 0 i32.store $0 local.get $11 i32.load $0 offset=8 - local.set $5 + local.set $6 local.get $11 i32.load $0 offset=16 - local.set $6 - local.get $0 + local.set $4 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -21841,28 +21841,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $0 i64.const 0 i64.store $0 - local.get $7 + local.get $0 i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $2 i32.store $0 - local.get $12 + local.get $2 i32.const 0 i32.store $0 - local.get $12 + local.get $2 i32.const 0 i32.store $0 offset=4 - local.get $12 + local.get $2 i32.const 0 i32.store $0 offset=8 - local.get $12 + local.get $2 i32.const 0 i32.store $0 offset=12 - local.get $6 + local.get $4 i32.const 134217727 i32.gt_u if @@ -21875,68 +21875,68 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $6 - local.get $6 + local.get $4 + local.get $4 i32.const 8 i32.le_u select i32.const 3 i32.shl - local.tee $7 + local.tee $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store $0 offset=4 - local.get $12 - local.get $8 + local.get $2 + local.get $0 i32.store $0 - local.get $8 + local.get $0 if - local.get $12 - local.get $8 + local.get $2 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $8 + local.get $2 + local.get $0 i32.store $0 offset=4 - local.get $12 - local.get $7 + local.get $2 + local.get $1 i32.store $0 offset=8 - local.get $12 - local.get $6 + local.get $2 + local.get $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $12 + local.get $7 + local.get $2 i32.store $0 i32.const 0 local.set $0 - loop $for-loop|04 - local.get $1 - local.get $6 - i32.lt_s + loop $for-loop|03 + local.get $4 + local.get $10 + i32.gt_s if - local.get $5 - local.get $1 + local.get $6 + local.get $10 i32.const 4 i32.shl i32.add - local.tee $7 + local.tee $1 i32.load $0 offset=12 i32.const 1 i32.and i32.eqz if - local.get $12 + local.get $2 i32.load $0 offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $7 + local.get $1 f64.load $0 f64.store $0 local.get $0 @@ -21944,34 +21944,34 @@ i32.add local.set $0 end - local.get $1 + local.get $10 i32.const 1 i32.add - local.set $1 - br $for-loop|04 + local.set $10 + br $for-loop|03 end end - local.get $12 + local.get $2 local.get $0 i32.const 3 call $~lib/array/ensureCapacity - local.get $12 + local.get $2 local.get $0 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $12 + local.get $9 + local.get $2 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer local.get $11 call $~lib/map/Map#values - local.tee $6 + local.tee $10 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21981,76 +21981,76 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store $0 - local.get $1 + local.get $0 i32.const 24 i32.const 32 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $14 i32.store $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $13 - local.get $1 + local.get $14 + local.get $0 i32.store $0 - local.get $1 + local.get $0 if - local.get $13 - local.get $1 + local.get $14 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 + local.get $14 i32.const 3 i32.store $0 offset=4 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store $0 offset=4 - local.get $13 - local.get $1 + local.get $14 + local.get $0 i32.store $0 offset=8 - local.get $1 + local.get $0 if - local.get $13 - local.get $1 + local.get $14 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 + local.get $14 i32.const 4 i32.store $0 offset=12 - local.get $13 + local.get $14 i32.const 0 i32.store $0 offset=16 - local.get $13 + local.get $14 i32.const 0 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $13 + local.get $1 + local.get $14 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $9 i32.store $0 offset=16 loop $for-loop|2 - local.get $9 - local.get $12 + local.get $17 + local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $9 - local.get $12 + local.get $17 + local.get $2 i32.load $0 offset=12 i32.ge_u if @@ -22061,25 +22061,25 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $2 i32.load $0 offset=4 - local.get $9 + local.get $17 i32.const 3 i32.shl i32.add f64.load $0 - local.set $3 - local.get $6 - local.get $9 + local.set $8 + local.get $10 + local.get $17 call $~lib/array/Array#__get local.set $7 local.get $11 i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $8 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22089,7 +22089,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22125,8 +22125,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find41 - loop $while-continue|045 + block $__inlined_func$~lib/map/Map#find38 + loop $while-continue|042 local.get $0 if local.get $0 @@ -22137,17 +22137,17 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $8 local.get $0 f64.load $0 f64.eq end - br_if $__inlined_func$~lib/map/Map#find41 + br_if $__inlined_func$~lib/map/Map#find38 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|045 + br $while-continue|042 end end i32.const 0 @@ -22171,9 +22171,9 @@ i32.const 20 i32.sub f64.convert_i32_s - local.tee $14 + local.tee $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22183,7 +22183,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22219,8 +22219,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find48 - loop $while-continue|052 + block $__inlined_func$~lib/map/Map#find45 + loop $while-continue|049 local.get $0 if local.get $0 @@ -22231,17 +22231,17 @@ if (result i32) i32.const 0 else - local.get $14 + local.get $5 local.get $0 f64.load $0 f64.eq end - br_if $__inlined_func$~lib/map/Map#find48 + br_if $__inlined_func$~lib/map/Map#find45 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|052 + br $while-continue|049 end end i32.const 0 @@ -22268,11 +22268,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $13 + local.get $14 i32.load $0 - local.get $3 + local.get $8 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22282,7 +22282,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22312,8 +22312,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $5 - local.get $13 + local.tee $6 + local.get $14 i32.load $0 offset=4 i32.and i32.const 2 @@ -22322,7 +22322,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|059 + loop $while-continue|056 local.get $0 if local.get $0 @@ -22333,7 +22333,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $8 local.get $0 f64.load $0 f64.eq @@ -22343,7 +22343,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|059 + br $while-continue|056 end end i32.const 0 @@ -22352,18 +22352,18 @@ local.get $0 if local.get $0 - local.get $3 + local.get $8 f64.store $0 offset=8 else - local.get $13 + local.get $14 i32.load $0 offset=16 - local.get $13 + local.get $14 i32.load $0 offset=12 i32.eq if - local.get $13 + local.get $14 i32.load $0 offset=20 - local.get $13 + local.get $14 i32.load $0 offset=12 i32.const 3 i32.mul @@ -22371,17 +22371,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $13 + local.get $14 i32.load $0 offset=4 else - local.get $13 + local.get $14 i32.load $0 offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -22395,14 +22395,14 @@ i64.const 0 i64.store $0 local.get $0 - local.get $15 + local.get $13 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $12 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -22410,49 +22410,49 @@ i32.shl i32.const 3 i32.div_s - local.tee $4 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store $0 offset=4 - local.get $13 + local.get $14 i32.load $0 offset=8 - local.tee $10 - local.get $13 + local.tee $18 + local.get $14 i32.load $0 offset=16 i32.const 24 i32.mul i32.add - local.set $17 + local.set $15 local.get $1 local.set $0 loop $while-continue|00 - local.get $10 - local.get $17 + local.get $15 + local.get $18 i32.ne if - local.get $10 + local.get $18 i32.load $0 offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $10 + local.get $18 f64.load $0 - local.tee $14 + local.tee $5 f64.store $0 local.get $0 - local.get $10 + local.get $18 f64.load $0 offset=8 f64.store $0 offset=8 local.get $0 - local.get $16 - local.get $15 - local.get $14 + local.get $12 + local.get $13 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22462,7 +22462,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22473,22 +22473,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $18 - local.get $18 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $18 - local.get $18 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $18 - local.get $18 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -22496,10 +22496,10 @@ i32.const 2 i32.shl i32.add - local.tee $18 + local.tee $4 i32.load $0 i32.store $0 offset=16 - local.get $18 + local.get $4 local.get $0 i32.store $0 local.get $0 @@ -22507,39 +22507,39 @@ i32.add local.set $0 end - local.get $10 + local.get $18 i32.const 24 i32.add - local.set $10 + local.set $18 br $while-continue|00 end end - local.get $13 - local.get $16 + local.get $14 + local.get $12 i32.store $0 - local.get $16 + local.get $12 if - local.get $13 - local.get $16 + local.get $14 + local.get $12 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $14 local.get $13 - local.get $15 i32.store $0 offset=4 - local.get $13 + local.get $14 local.get $1 i32.store $0 offset=8 local.get $1 if - local.get $13 + local.get $14 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 - local.get $4 + local.get $14 + local.get $16 i32.store $0 offset=12 - local.get $13 - local.get $13 + local.get $14 + local.get $14 i32.load $0 offset=20 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer @@ -22548,70 +22548,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $14 i32.load $0 offset=8 - local.tee $0 + local.tee $1 i32.store $0 - local.get $13 - local.get $13 + local.get $14 + local.get $14 i32.load $0 offset=16 - local.tee $1 + local.tee $0 i32.const 1 i32.add i32.store $0 offset=16 - local.get $0 local.get $1 + local.get $0 i32.const 24 i32.mul i32.add - local.tee $0 - local.get $3 + local.tee $1 + local.get $8 f64.store $0 - local.get $0 - local.get $3 + local.get $1 + local.get $8 f64.store $0 offset=8 - local.get $13 - local.get $13 + local.get $14 + local.get $14 i32.load $0 offset=20 i32.const 1 i32.add i32.store $0 offset=20 - local.get $0 - local.get $13 + local.get $1 + local.get $14 i32.load $0 - local.get $5 - local.get $13 + local.get $6 + local.get $14 i32.load $0 offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $0 i32.load $0 i32.store $0 offset=16 - local.get $1 local.get $0 + local.get $1 i32.store $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $9 + local.get $17 i32.const 1 i32.add - local.set $9 + local.set $17 br $for-loop|2 end end - local.get $13 + local.get $14 i32.load $0 offset=20 i32.const 100 i32.ne @@ -22623,7 +22623,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $9 i32.load $0 offset=20 i32.const 100 i32.ne @@ -22636,9 +22636,9 @@ unreachable end f64.const 0 - local.set $3 + local.set $5 loop $for-loop|3 - local.get $3 + local.get $5 f64.const 50 f64.lt if @@ -22646,9 +22646,9 @@ i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22658,7 +22658,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22694,8 +22694,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find80 - loop $while-continue|084 + block $__inlined_func$~lib/map/Map#find77 + loop $while-continue|081 local.get $0 if local.get $0 @@ -22706,17 +22706,17 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end - br_if $__inlined_func$~lib/map/Map#find80 + br_if $__inlined_func$~lib/map/Map#find77 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|084 + br $while-continue|081 end end i32.const 0 @@ -22733,9 +22733,9 @@ unreachable end local.get $11 - local.get $3 + local.get $5 call $~lib/map/Map#get - local.get $3 + local.get $5 i32.trunc_sat_f64_s i32.const 20 i32.add @@ -22749,15 +22749,15 @@ unreachable end local.get $11 - local.get $3 + local.get $5 call $~lib/map/Map#delete local.get $11 i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22767,7 +22767,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22803,8 +22803,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find87 - loop $while-continue|091 + block $__inlined_func$~lib/map/Map#find84 + loop $while-continue|088 local.get $0 if local.get $0 @@ -22815,17 +22815,17 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end - br_if $__inlined_func$~lib/map/Map#find87 + br_if $__inlined_func$~lib/map/Map#find84 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|091 + br $while-continue|088 end end i32.const 0 @@ -22840,10 +22840,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 f64.const 1 f64.add - local.set $3 + local.set $5 br $for-loop|3 end end @@ -22860,9 +22860,9 @@ unreachable end f64.const 0 - local.set $3 + local.set $5 loop $for-loop|4 - local.get $3 + local.get $5 f64.const 50 f64.lt if @@ -22870,9 +22870,9 @@ i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22882,7 +22882,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22918,8 +22918,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find96 - loop $while-continue|0100 + block $__inlined_func$~lib/map/Map#find93 + loop $while-continue|097 local.get $0 if local.get $0 @@ -22930,17 +22930,17 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end - br_if $__inlined_func$~lib/map/Map#find96 + br_if $__inlined_func$~lib/map/Map#find93 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0100 + br $while-continue|097 end end i32.const 0 @@ -22956,8 +22956,8 @@ unreachable end local.get $11 - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.trunc_sat_f64_s i32.const 10 i32.add @@ -22966,9 +22966,9 @@ i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22978,7 +22978,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -23014,8 +23014,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find103 - loop $while-continue|0107 + block $__inlined_func$~lib/map/Map#find100 + loop $while-continue|0104 local.get $0 if local.get $0 @@ -23026,17 +23026,17 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end - br_if $__inlined_func$~lib/map/Map#find103 + br_if $__inlined_func$~lib/map/Map#find100 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0107 + br $while-continue|0104 end end i32.const 0 @@ -23053,15 +23053,15 @@ unreachable end local.get $11 - local.get $3 + local.get $5 call $~lib/map/Map#delete local.get $11 i32.load $0 local.get $11 i32.load $0 offset=4 - local.get $3 + local.get $5 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -23071,7 +23071,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -23107,8 +23107,8 @@ i32.add i32.load $0 local.set $0 - block $__inlined_func$~lib/map/Map#find110 - loop $while-continue|0114 + block $__inlined_func$~lib/map/Map#find107 + loop $while-continue|0111 local.get $0 if local.get $0 @@ -23119,17 +23119,17 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 local.get $0 f64.load $0 f64.eq end - br_if $__inlined_func$~lib/map/Map#find110 + br_if $__inlined_func$~lib/map/Map#find107 local.get $1 i32.const -2 i32.and local.set $0 - br $while-continue|0114 + br $while-continue|0111 end end i32.const 0 @@ -23144,10 +23144,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 f64.const 1 f64.add - local.set $3 + local.set $5 br $for-loop|4 end end diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat index bb80ce340d..84914e9713 100644 --- a/tests/compiler/std/math.debug.wat +++ b/tests/compiler/std/math.debug.wat @@ -155,6 +155,7 @@ i32.sub i32.const 52 i32.sub + return ) (func $~lib/math/NativeMath.scalbn (type $f64_i32_=>_f64) (param $x f64) (param $n i32) (result f64) (local $y f64) @@ -248,6 +249,7 @@ i64.shl f64.reinterpret_i64 f64.mul + return ) (func $std/math/ulperr (type $f64_f64_f64_=>_f64) (param $got f64) (param $want f64) (param $dwant f64) (result f64) (local $x f64) @@ -270,24 +272,30 @@ local.get $want f64.eq if - local.get $got - local.set $x - local.get $x - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.0 (result i32) + local.get $got + local.set $x + local.get $x + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.0 + end i32.const 0 i32.ne - local.get $want - local.set $x|4 - local.get $x|4 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.1 (result i32) + local.get $want + local.set $x|4 + local.get $x|4 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.1 + end i32.const 0 i32.ne i32.eq @@ -324,6 +332,7 @@ call $~lib/math/NativeMath.scalbn local.get $dwant f64.add + return ) (func $std/math/check (type $f64_f64_f64_i32_=>_i32) (param $actual f64) (param $expected f64) (param $dy f64) (param $flags i32) (result i32) (local $d f64) @@ -361,6 +370,7 @@ return end i32.const 1 + return ) (func $std/math/eulpf (type $f32_=>_i32) (param $x f32) (result i32) (local $u i32) @@ -387,6 +397,7 @@ i32.sub i32.const 23 i32.sub + return ) (func $~lib/math/NativeMathf.scalbn (type $f32_i32_=>_f32) (param $x f32) (param $n i32) (result f32) (local $y f32) @@ -479,6 +490,7 @@ i32.shl f32.reinterpret_i32 f32.mul + return ) (func $std/math/ulperrf (type $f32_f32_f32_=>_f32) (param $got f32) (param $want f32) (param $dwant f32) (result f32) (local $x f32) @@ -501,20 +513,26 @@ local.get $want f32.eq if - local.get $got - local.set $x - local.get $x - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.0 (result i32) + local.get $got + local.set $x + local.get $x + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.0 + end i32.const 0 i32.ne - local.get $want - local.set $x|4 - local.get $x|4 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.1 (result i32) + local.get $want + local.set $x|4 + local.get $x|4 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.1 + end i32.const 0 i32.ne i32.eq @@ -551,6 +569,7 @@ call $~lib/math/NativeMathf.scalbn local.get $dwant f32.add + return ) (func $std/math/check (type $f32_f32_f32_i32_=>_i32) (param $actual f32) (param $expected f32) (param $dy f32) (param $flags i32) (result i32) (local $d f32) @@ -592,6 +611,7 @@ return end i32.const 1 + return ) (func $std/math/test_scalbn (type $f64_i32_f64_f64_i32_=>_i32) (param $value f64) (param $n i32) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -601,6 +621,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_scalbnf (type $f32_i32_f32_f32_i32_=>_i32) (param $value f32) (param $n i32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -610,13 +631,17 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_abs (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) (local $x f64) - local.get $value - local.set $x - local.get $x - f64.abs + block $~lib/math/NativeMath.abs|inlined.0 (result f64) + local.get $value + local.set $x + local.get $x + f64.abs + br $~lib/math/NativeMath.abs|inlined.0 + end local.get $expected local.get $error local.get $flags @@ -631,17 +656,22 @@ else i32.const 0 end + return ) (func $std/math/test_absf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) (local $x f32) - local.get $value - local.set $x - local.get $x - f32.abs + block $~lib/math/NativeMathf.abs|inlined.0 (result f32) + local.get $value + local.set $x + local.get $x + f32.abs + br $~lib/math/NativeMathf.abs|inlined.0 + end local.get $expected local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/R (type $f64_=>_f64) (param $z f64) (result f64) (local $p f64) @@ -691,6 +721,7 @@ local.get $p local.get $q f64.div + return ) (func $~lib/math/NativeMath.acos (type $f64_=>_f64) (param $x f64) (result f64) (local $hx i32) @@ -843,6 +874,7 @@ local.get $w f64.add f64.mul + return ) (func $std/math/test_acos (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -861,6 +893,7 @@ else i32.const 0 end + return ) (func $~lib/math/Rf (type $f32_=>_f32) (param $z f32) (result f32) (local $p f32) @@ -886,6 +919,7 @@ local.get $p local.get $q f32.div + return ) (func $~lib/math/NativeMathf.acos (type $f32_=>_f32) (param $x f32) (result f32) (local $hx i32) @@ -1024,6 +1058,7 @@ local.get $w f32.add f32.mul + return ) (func $std/math/test_acosf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -1032,6 +1067,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.log1p (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -1276,6 +1312,7 @@ f64.const 0.6931471803691238 f64.mul f64.add + return ) (func $~lib/math/NativeMath.log (type $f64_=>_f64) (param $x f64) (result f64) (local $x|1 f64) @@ -1616,6 +1653,7 @@ f64.add local.get $hi|25 f64.add + br $~lib/util/math/log_lut|inlined.0 end return ) @@ -1696,6 +1734,7 @@ call $~lib/math/NativeMath.log f64.const 0.6931471805599453 f64.add + return ) (func $std/math/test_acosh (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -1714,6 +1753,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.log1p (type $f32_=>_f32) (param $x f32) (result f32) (local $ix i32) @@ -1925,6 +1965,7 @@ f32.const 0.6931381225585938 f32.mul f32.add + return ) (func $~lib/math/NativeMathf.log (type $f32_=>_f32) (param $x f32) (result f32) (local $x|1 f32) @@ -2094,6 +2135,7 @@ local.set $y local.get $y f32.demote_f64 + br $~lib/util/math/logf_lut|inlined.0 end return ) @@ -2160,6 +2202,7 @@ call $~lib/math/NativeMathf.log f32.const 0.6931471824645996 f32.add + return ) (func $std/math/test_acoshf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -2168,6 +2211,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.asin (type $f64_=>_f64) (param $x f64) (result f64) (local $hx i32) @@ -2325,6 +2369,7 @@ i32.const 0 i32.lt_s select + return ) (func $std/math/test_asin (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -2343,6 +2388,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.asin (type $f32_=>_f32) (param $x f32) (result f32) (local $sx f32) @@ -2435,6 +2481,7 @@ local.get $x local.get $sx f32.copysign + return ) (func $std/math/test_asinf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -2443,6 +2490,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.asinh (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -2525,6 +2573,7 @@ local.get $y local.get $x f64.copysign + return ) (func $std/math/test_asinh (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -2543,6 +2592,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.asinh (type $f32_=>_f32) (param $x f32) (result f32) (local $u i32) @@ -2624,6 +2674,7 @@ local.get $y local.get $x f32.copysign + return ) (func $std/math/test_asinhf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -2632,6 +2683,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.atan (type $f64_=>_f64) (param $x f64) (result f64) (local $ix i32) @@ -2890,6 +2942,7 @@ local.get $z local.get $sx f64.copysign + return ) (func $std/math/test_atan (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -2908,6 +2961,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.atan (type $f32_=>_f32) (param $x f32) (result f32) (local $ix i32) @@ -3138,6 +3192,7 @@ local.get $z local.get $sx f32.copysign + return ) (func $std/math/test_atanf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -3146,6 +3201,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.atanh (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -3209,6 +3265,7 @@ local.get $y local.get $x f64.copysign + return ) (func $std/math/test_atanh (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -3227,6 +3284,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.atanh (type $f32_=>_f32) (param $x f32) (result f32) (local $u i32) @@ -3285,6 +3343,7 @@ local.get $y local.get $x f32.copysign + return ) (func $std/math/test_atanhf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -3293,6 +3352,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.atan2 (type $f64_f64_=>_f64) (param $y f64) (param $x f64) (result f64) (local $u i64) @@ -3619,6 +3679,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.atan2 (type $f32_f32_=>_f32) (param $y f32) (param $x f32) (result f32) (local $ix i32) @@ -3906,6 +3967,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.cbrt (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -4050,6 +4112,7 @@ f64.add local.set $t local.get $t + return ) (func $std/math/test_cbrt (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -4068,6 +4131,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.cbrt (type $f32_=>_f32) (param $x f32) (result f32) (local $u i32) @@ -4184,6 +4248,7 @@ local.set $t local.get $t f32.demote_f64 + return ) (func $std/math/test_cbrtf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -4192,13 +4257,17 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_ceil (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) (local $x f64) - local.get $value - local.set $x - local.get $x - f64.ceil + block $~lib/math/NativeMath.ceil|inlined.0 (result f64) + local.get $value + local.set $x + local.get $x + f64.ceil + br $~lib/math/NativeMath.ceil|inlined.0 + end local.get $expected local.get $error local.get $flags @@ -4213,17 +4282,22 @@ else i32.const 0 end + return ) (func $std/math/test_ceilf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) (local $x f32) - local.get $value - local.set $x - local.get $x - f32.ceil + block $~lib/math/NativeMathf.ceil|inlined.0 (result f32) + local.get $value + local.set $x + local.get $x + f32.ceil + br $~lib/math/NativeMathf.ceil|inlined.0 + end local.get $expected local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/pio2_large_quot (type $f64_i64_=>_i32) (param $x f64) (param $u i64) (result i32) (local $magnitude i64) @@ -4357,69 +4431,72 @@ i64.const 4503599627370496 i64.or local.set $significand - local.get $s1 - local.set $u|15 - local.get $significand - local.set $v - local.get $u|15 - i64.const 4294967295 - i64.and - local.set $u1 - local.get $v - i64.const 4294967295 - i64.and - local.set $v1 - local.get $u|15 - i64.const 32 - i64.shr_u - local.set $u|15 - local.get $v - i64.const 32 - i64.shr_u - local.set $v - local.get $u1 - local.get $v1 - i64.mul - local.set $t - local.get $t - i64.const 4294967295 - i64.and - local.set $w0 - local.get $u|15 - local.get $v1 - i64.mul - local.get $t - i64.const 32 - i64.shr_u - i64.add - local.set $t - local.get $t - i64.const 32 - i64.shr_u - local.set $w1 - local.get $u1 - local.get $v - i64.mul - local.get $t - i64.const 4294967295 - i64.and - i64.add - local.set $t - local.get $u|15 - local.get $v - i64.mul - local.get $w1 - i64.add - local.get $t - i64.const 32 - i64.shr_u - i64.add - global.set $~lib/math/res128_hi - local.get $t - i64.const 32 - i64.shl - local.get $w0 - i64.add + block $~lib/math/umuldi|inlined.0 (result i64) + local.get $s1 + local.set $u|15 + local.get $significand + local.set $v + local.get $u|15 + i64.const 4294967295 + i64.and + local.set $u1 + local.get $v + i64.const 4294967295 + i64.and + local.set $v1 + local.get $u|15 + i64.const 32 + i64.shr_u + local.set $u|15 + local.get $v + i64.const 32 + i64.shr_u + local.set $v + local.get $u1 + local.get $v1 + i64.mul + local.set $t + local.get $t + i64.const 4294967295 + i64.and + local.set $w0 + local.get $u|15 + local.get $v1 + i64.mul + local.get $t + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $t + i64.const 32 + i64.shr_u + local.set $w1 + local.get $u1 + local.get $v + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $t + local.get $u|15 + local.get $v + i64.mul + local.get $w1 + i64.add + local.get $t + i64.const 32 + i64.shr_u + i64.add + global.set $~lib/math/res128_hi + local.get $t + i64.const 32 + i64.shl + local.get $w0 + i64.add + br $~lib/math/umuldi|inlined.0 + end local.set $blo global.get $~lib/math/res128_hi local.set $bhi @@ -4475,142 +4552,148 @@ i64.sub local.set $q i64.const 4372995238176751616 - local.get $rlo - local.get $slo - i64.xor - local.set $q0 - local.get $rhi - local.get $shi - i64.xor - local.set $q1 - local.get $q1 - i64.clz - local.set $shift|35 - local.get $q1 - local.get $shift|35 - i64.shl - local.get $q0 - i64.const 64 - local.get $shift|35 - i64.sub - i64.shr_u - i64.or - local.set $q1 - local.get $q0 - local.get $shift|35 - i64.shl - local.set $q0 - i64.const -3958705157555305932 - local.set $u|36 - local.get $q1 - local.set $v|37 - local.get $u|36 - i64.const 4294967295 - i64.and - local.set $u1|38 - local.get $v|37 - i64.const 4294967295 - i64.and - local.set $v1|39 - local.get $u|36 - i64.const 32 - i64.shr_u - local.set $u|36 - local.get $v|37 - i64.const 32 - i64.shr_u - local.set $v|37 - local.get $u1|38 - local.get $v1|39 - i64.mul - local.set $t|42 - local.get $t|42 - i64.const 4294967295 - i64.and - local.set $w0|40 - local.get $u|36 - local.get $v1|39 - i64.mul - local.get $t|42 - i64.const 32 - i64.shr_u - i64.add - local.set $t|42 - local.get $t|42 - i64.const 32 - i64.shr_u - local.set $w1|41 - local.get $u1|38 - local.get $v|37 - i64.mul - local.get $t|42 - i64.const 4294967295 - i64.and - i64.add - local.set $t|42 - local.get $u|36 - local.get $v|37 - i64.mul - local.get $w1|41 - i64.add - local.get $t|42 - i64.const 32 - i64.shr_u - i64.add - global.set $~lib/math/res128_hi - local.get $t|42 - i64.const 32 - i64.shl - local.get $w0|40 - i64.add - local.set $lo - global.get $~lib/math/res128_hi - local.set $hi - local.get $hi - i64.const 11 - i64.shr_u - local.set $ahi|45 - local.get $lo - i64.const 11 - i64.shr_u - local.get $hi - i64.const 53 - i64.shl - i64.or - local.set $alo - f64.const 2.6469779601696886e-23 - i64.const -4267615245585081135 - f64.convert_i64_u - f64.mul - local.get $q1 - f64.convert_i64_u - f64.mul - f64.const 2.6469779601696886e-23 - i64.const -3958705157555305932 - f64.convert_i64_u - f64.mul - local.get $q0 - f64.convert_i64_u - f64.mul - f64.add - i64.trunc_sat_f64_u - local.set $blo|47 - local.get $ahi|45 - local.get $lo - local.get $blo|47 - i64.lt_u - i64.extend_i32_u - i64.add - f64.convert_i64_u - global.set $~lib/math/rempio2_y0 - f64.const 5.421010862427522e-20 - local.get $alo - local.get $blo|47 - i64.add - f64.convert_i64_u - f64.mul - global.set $~lib/math/rempio2_y1 - local.get $shift|35 + block $~lib/math/pio2_right|inlined.0 (result i64) + local.get $rlo + local.get $slo + i64.xor + local.set $q0 + local.get $rhi + local.get $shi + i64.xor + local.set $q1 + local.get $q1 + i64.clz + local.set $shift|35 + local.get $q1 + local.get $shift|35 + i64.shl + local.get $q0 + i64.const 64 + local.get $shift|35 + i64.sub + i64.shr_u + i64.or + local.set $q1 + local.get $q0 + local.get $shift|35 + i64.shl + local.set $q0 + block $~lib/math/umuldi|inlined.1 (result i64) + i64.const -3958705157555305932 + local.set $u|36 + local.get $q1 + local.set $v|37 + local.get $u|36 + i64.const 4294967295 + i64.and + local.set $u1|38 + local.get $v|37 + i64.const 4294967295 + i64.and + local.set $v1|39 + local.get $u|36 + i64.const 32 + i64.shr_u + local.set $u|36 + local.get $v|37 + i64.const 32 + i64.shr_u + local.set $v|37 + local.get $u1|38 + local.get $v1|39 + i64.mul + local.set $t|42 + local.get $t|42 + i64.const 4294967295 + i64.and + local.set $w0|40 + local.get $u|36 + local.get $v1|39 + i64.mul + local.get $t|42 + i64.const 32 + i64.shr_u + i64.add + local.set $t|42 + local.get $t|42 + i64.const 32 + i64.shr_u + local.set $w1|41 + local.get $u1|38 + local.get $v|37 + i64.mul + local.get $t|42 + i64.const 4294967295 + i64.and + i64.add + local.set $t|42 + local.get $u|36 + local.get $v|37 + i64.mul + local.get $w1|41 + i64.add + local.get $t|42 + i64.const 32 + i64.shr_u + i64.add + global.set $~lib/math/res128_hi + local.get $t|42 + i64.const 32 + i64.shl + local.get $w0|40 + i64.add + br $~lib/math/umuldi|inlined.1 + end + local.set $lo + global.get $~lib/math/res128_hi + local.set $hi + local.get $hi + i64.const 11 + i64.shr_u + local.set $ahi|45 + local.get $lo + i64.const 11 + i64.shr_u + local.get $hi + i64.const 53 + i64.shl + i64.or + local.set $alo + f64.const 2.6469779601696886e-23 + i64.const -4267615245585081135 + f64.convert_i64_u + f64.mul + local.get $q1 + f64.convert_i64_u + f64.mul + f64.const 2.6469779601696886e-23 + i64.const -3958705157555305932 + f64.convert_i64_u + f64.mul + local.get $q0 + f64.convert_i64_u + f64.mul + f64.add + i64.trunc_sat_f64_u + local.set $blo|47 + local.get $ahi|45 + local.get $lo + local.get $blo|47 + i64.lt_u + i64.extend_i32_u + i64.add + f64.convert_i64_u + global.set $~lib/math/rempio2_y0 + f64.const 5.421010862427522e-20 + local.get $alo + local.get $blo|47 + i64.add + f64.convert_i64_u + f64.mul + global.set $~lib/math/rempio2_y1 + local.get $shift|35 + br $~lib/math/pio2_right|inlined.0 + end i64.const 52 i64.shl i64.sub @@ -4636,6 +4719,7 @@ global.set $~lib/math/rempio2_y1 local.get $q i32.wrap_i64 + return ) (func $~lib/math/NativeMath.cos (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -4709,67 +4793,70 @@ f64.const 1 return end - local.get $x - local.set $x|4 - f64.const 0 - local.set $y - local.get $x|4 - local.get $x|4 - f64.mul - local.set $z - local.get $z - local.get $z - f64.mul - local.set $w - local.get $z - f64.const 0.0416666666666666 - local.get $z - f64.const -0.001388888888887411 - local.get $z - f64.const 2.480158728947673e-05 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.get $w - local.get $w - f64.mul - f64.const -2.7557314351390663e-07 - local.get $z - f64.const 2.087572321298175e-09 - local.get $z - f64.const -1.1359647557788195e-11 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.set $r - f64.const 0.5 - local.get $z - f64.mul - local.set $hz - f64.const 1 - local.get $hz - f64.sub - local.set $w - local.get $w - f64.const 1 - local.get $w - f64.sub - local.get $hz - f64.sub - local.get $z - local.get $r - f64.mul - local.get $x|4 - local.get $y - f64.mul - f64.sub - f64.add - f64.add + block $~lib/math/cos_kern|inlined.0 (result f64) + local.get $x + local.set $x|4 + f64.const 0 + local.set $y + local.get $x|4 + local.get $x|4 + f64.mul + local.set $z + local.get $z + local.get $z + f64.mul + local.set $w + local.get $z + f64.const 0.0416666666666666 + local.get $z + f64.const -0.001388888888887411 + local.get $z + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $w + local.get $w + f64.mul + f64.const -2.7557314351390663e-07 + local.get $z + f64.const 2.087572321298175e-09 + local.get $z + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $r + f64.const 0.5 + local.get $z + f64.mul + local.set $hz + f64.const 1 + local.get $hz + f64.sub + local.set $w + local.get $w + f64.const 1 + local.get $w + f64.sub + local.get $hz + f64.sub + local.get $z + local.get $r + f64.mul + local.get $x|4 + local.get $y + f64.mul + f64.sub + f64.add + f64.add + br $~lib/math/cos_kern|inlined.0 + end return end local.get $ux @@ -5024,6 +5111,7 @@ local.get $q|28 local.get $sign|12 select + br $~lib/math/rempio2|inlined.0 end local.set $n global.get $~lib/math/rempio2_y0 @@ -5109,67 +5197,70 @@ unreachable end else - local.get $y0|30 - local.set $x|39 - local.get $y1|31 - local.set $y|40 - local.get $x|39 - local.get $x|39 - f64.mul - local.set $z|41 - local.get $z|41 - local.get $z|41 - f64.mul - local.set $w|42 - local.get $z|41 - f64.const 0.0416666666666666 - local.get $z|41 - f64.const -0.001388888888887411 - local.get $z|41 - f64.const 2.480158728947673e-05 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.get $w|42 - local.get $w|42 - f64.mul - f64.const -2.7557314351390663e-07 - local.get $z|41 - f64.const 2.087572321298175e-09 - local.get $z|41 - f64.const -1.1359647557788195e-11 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.set $r|43 - f64.const 0.5 - local.get $z|41 - f64.mul - local.set $hz|44 - f64.const 1 - local.get $hz|44 - f64.sub - local.set $w|42 - local.get $w|42 - f64.const 1 - local.get $w|42 - f64.sub - local.get $hz|44 - f64.sub - local.get $z|41 - local.get $r|43 - f64.mul - local.get $x|39 - local.get $y|40 - f64.mul - f64.sub - f64.add - f64.add + block $~lib/math/cos_kern|inlined.1 (result f64) + local.get $y0|30 + local.set $x|39 + local.get $y1|31 + local.set $y|40 + local.get $x|39 + local.get $x|39 + f64.mul + local.set $z|41 + local.get $z|41 + local.get $z|41 + f64.mul + local.set $w|42 + local.get $z|41 + f64.const 0.0416666666666666 + local.get $z|41 + f64.const -0.001388888888887411 + local.get $z|41 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $w|42 + local.get $w|42 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $z|41 + f64.const 2.087572321298175e-09 + local.get $z|41 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $r|43 + f64.const 0.5 + local.get $z|41 + f64.mul + local.set $hz|44 + f64.const 1 + local.get $hz|44 + f64.sub + local.set $w|42 + local.get $w|42 + f64.const 1 + local.get $w|42 + f64.sub + local.get $hz|44 + f64.sub + local.get $z|41 + local.get $r|43 + f64.mul + local.get $x|39 + local.get $y|40 + f64.mul + f64.sub + f64.add + f64.add + br $~lib/math/cos_kern|inlined.1 + end end local.set $x local.get $n @@ -5183,6 +5274,7 @@ else local.get $x end + return ) (func $std/math/test_cos (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -5201,6 +5293,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.cos (type $f32_=>_f32) (param $x f32) (result f32) (local $ux i32) @@ -5290,182 +5383,194 @@ f32.const 1 return end - local.get $x - f64.promote_f32 - local.set $x|3 - local.get $x|3 - local.get $x|3 - f64.mul - local.set $z - local.get $z - local.get $z - f64.mul - local.set $w - f64.const -0.001388676377460993 - local.get $z - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $r - f32.const 1 - f64.promote_f32 - local.get $z - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $w - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $w - local.get $z - f64.mul - local.get $r - f64.mul - f64.add - f32.demote_f64 - return - end - i32.const 0 - i32.const 1 - i32.lt_s - drop - local.get $ux - i32.const 1081824209 - i32.le_u - if - local.get $ux - i32.const 1075235811 - i32.gt_u - if - local.get $sign - if (result f64) - local.get $x - f64.promote_f32 - f64.const 3.141592653589793 - f64.add - else - local.get $x - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub - end - local.set $x|7 - local.get $x|7 - local.get $x|7 + block $~lib/math/cos_kernf|inlined.0 (result f32) + local.get $x + f64.promote_f32 + local.set $x|3 + local.get $x|3 + local.get $x|3 f64.mul - local.set $z|8 - local.get $z|8 - local.get $z|8 + local.set $z + local.get $z + local.get $z f64.mul - local.set $w|9 + local.set $w f64.const -0.001388676377460993 - local.get $z|8 + local.get $z f64.const 2.439044879627741e-05 f64.mul f64.add - local.set $r|10 + local.set $r f32.const 1 f64.promote_f32 - local.get $z|8 + local.get $z f64.const -0.499999997251031 f64.mul f64.add - local.get $w|9 + local.get $w f64.const 0.04166662332373906 f64.mul f64.add - local.get $w|9 - local.get $z|8 + local.get $w + local.get $z f64.mul - local.get $r|10 + local.get $r f64.mul f64.add f32.demote_f64 - f32.neg - return - else - local.get $sign - if (result f32) - local.get $x - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - local.set $x|11 - local.get $x|11 - local.get $x|11 - f64.mul - local.set $z|12 - local.get $z|12 - local.get $z|12 - f64.mul - local.set $w|13 - f64.const -1.9839334836096632e-04 - local.get $z|12 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r|14 - local.get $z|12 - local.get $x|11 - f64.mul - local.set $s - local.get $x|11 - local.get $s - f64.const -0.16666666641626524 - local.get $z|12 - f64.const 0.008333329385889463 - f64.mul - f64.add + br $~lib/math/cos_kernf|inlined.0 + end + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $ux + i32.const 1081824209 + i32.le_u + if + local.get $ux + i32.const 1075235811 + i32.gt_u + if + block $~lib/math/cos_kernf|inlined.1 (result f32) + local.get $sign + if (result f64) + local.get $x + f64.promote_f32 + f64.const 3.141592653589793 + f64.add + else + local.get $x + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub + end + local.set $x|7 + local.get $x|7 + local.get $x|7 f64.mul - f64.add - local.get $s - local.get $w|13 + local.set $z|8 + local.get $z|8 + local.get $z|8 f64.mul - local.get $r|14 + local.set $w|9 + f64.const -0.001388676377460993 + local.get $z|8 + f64.const 2.439044879627741e-05 f64.mul f64.add - f32.demote_f64 - else - f64.const 1.5707963267948966 - local.get $x + local.set $r|10 + f32.const 1 f64.promote_f32 - f64.sub - local.set $x|16 - local.get $x|16 - local.get $x|16 - f64.mul - local.set $z|17 - local.get $z|17 - local.get $z|17 - f64.mul - local.set $w|18 - f64.const -1.9839334836096632e-04 - local.get $z|17 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r|19 - local.get $z|17 - local.get $x|16 - f64.mul - local.set $s|20 - local.get $x|16 - local.get $s|20 - f64.const -0.16666666641626524 - local.get $z|17 - f64.const 0.008333329385889463 + local.get $z|8 + f64.const -0.499999997251031 f64.mul f64.add + local.get $w|9 + f64.const 0.04166662332373906 f64.mul f64.add - local.get $s|20 - local.get $w|18 + local.get $w|9 + local.get $z|8 f64.mul - local.get $r|19 + local.get $r|10 f64.mul f64.add f32.demote_f64 + br $~lib/math/cos_kernf|inlined.1 + end + f32.neg + return + else + local.get $sign + if (result f32) + block $~lib/math/sin_kernf|inlined.0 (result f32) + local.get $x + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.set $x|11 + local.get $x|11 + local.get $x|11 + f64.mul + local.set $z|12 + local.get $z|12 + local.get $z|12 + f64.mul + local.set $w|13 + f64.const -1.9839334836096632e-04 + local.get $z|12 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $r|14 + local.get $z|12 + local.get $x|11 + f64.mul + local.set $s + local.get $x|11 + local.get $s + f64.const -0.16666666641626524 + local.get $z|12 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s + local.get $w|13 + f64.mul + local.get $r|14 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.0 + end + else + block $~lib/math/sin_kernf|inlined.1 (result f32) + f64.const 1.5707963267948966 + local.get $x + f64.promote_f32 + f64.sub + local.set $x|16 + local.get $x|16 + local.get $x|16 + f64.mul + local.set $z|17 + local.get $z|17 + local.get $z|17 + f64.mul + local.set $w|18 + f64.const -1.9839334836096632e-04 + local.get $z|17 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $r|19 + local.get $z|17 + local.get $x|16 + f64.mul + local.set $s|20 + local.get $x|16 + local.get $s|20 + f64.const -0.16666666641626524 + local.get $z|17 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s|20 + local.get $w|18 + f64.mul + local.get $r|19 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.1 + end end return end @@ -5479,134 +5584,143 @@ i32.const 1085271519 i32.gt_u if - local.get $sign - if (result f64) - local.get $x - f64.promote_f32 - f64.const 6.283185307179586 - f64.add - else - local.get $x - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub - end - local.set $x|21 - local.get $x|21 - local.get $x|21 - f64.mul - local.set $z|22 - local.get $z|22 - local.get $z|22 - f64.mul - local.set $w|23 - f64.const -0.001388676377460993 - local.get $z|22 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $r|24 - f32.const 1 - f64.promote_f32 - local.get $z|22 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $w|23 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $w|23 - local.get $z|22 - f64.mul - local.get $r|24 - f64.mul - f64.add - f32.demote_f64 - return - else - local.get $sign - if (result f32) - local.get $x - f32.neg - f64.promote_f32 - f64.const 4.71238898038469 - f64.sub - local.set $x|25 - local.get $x|25 - local.get $x|25 - f64.mul - local.set $z|26 - local.get $z|26 - local.get $z|26 - f64.mul - local.set $w|27 - f64.const -1.9839334836096632e-04 - local.get $z|26 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r|28 - local.get $z|26 - local.get $x|25 - f64.mul - local.set $s|29 - local.get $x|25 - local.get $s|29 - f64.const -0.16666666641626524 - local.get $z|26 - f64.const 0.008333329385889463 - f64.mul - f64.add + block $~lib/math/cos_kernf|inlined.2 (result f32) + local.get $sign + if (result f64) + local.get $x + f64.promote_f32 + f64.const 6.283185307179586 + f64.add + else + local.get $x + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub + end + local.set $x|21 + local.get $x|21 + local.get $x|21 f64.mul - f64.add - local.get $s|29 - local.get $w|27 + local.set $z|22 + local.get $z|22 + local.get $z|22 f64.mul - local.get $r|28 + local.set $w|23 + f64.const -0.001388676377460993 + local.get $z|22 + f64.const 2.439044879627741e-05 f64.mul f64.add - f32.demote_f64 - else - local.get $x + local.set $r|24 + f32.const 1 f64.promote_f32 - f64.const 4.71238898038469 - f64.sub - local.set $x|30 - local.get $x|30 - local.get $x|30 - f64.mul - local.set $z|31 - local.get $z|31 - local.get $z|31 - f64.mul - local.set $w|32 - f64.const -1.9839334836096632e-04 - local.get $z|31 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r|33 - local.get $z|31 - local.get $x|30 - f64.mul - local.set $s|34 - local.get $x|30 - local.get $s|34 - f64.const -0.16666666641626524 - local.get $z|31 - f64.const 0.008333329385889463 + local.get $z|22 + f64.const -0.499999997251031 f64.mul f64.add + local.get $w|23 + f64.const 0.04166662332373906 f64.mul f64.add - local.get $s|34 - local.get $w|32 + local.get $w|23 + local.get $z|22 f64.mul - local.get $r|33 + local.get $r|24 f64.mul f64.add f32.demote_f64 + br $~lib/math/cos_kernf|inlined.2 + end + return + else + local.get $sign + if (result f32) + block $~lib/math/sin_kernf|inlined.2 (result f32) + local.get $x + f32.neg + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + local.set $x|25 + local.get $x|25 + local.get $x|25 + f64.mul + local.set $z|26 + local.get $z|26 + local.get $z|26 + f64.mul + local.set $w|27 + f64.const -1.9839334836096632e-04 + local.get $z|26 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $r|28 + local.get $z|26 + local.get $x|25 + f64.mul + local.set $s|29 + local.get $x|25 + local.get $s|29 + f64.const -0.16666666641626524 + local.get $z|26 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s|29 + local.get $w|27 + f64.mul + local.get $r|28 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.2 + end + else + block $~lib/math/sin_kernf|inlined.3 (result f32) + local.get $x + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + local.set $x|30 + local.get $x|30 + local.get $x|30 + f64.mul + local.set $z|31 + local.get $z|31 + local.get $z|31 + f64.mul + local.set $w|32 + f64.const -1.9839334836096632e-04 + local.get $z|31 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $r|33 + local.get $z|31 + local.get $x|30 + f64.mul + local.set $s|34 + local.get $x|30 + local.get $s|34 + f64.const -0.16666666641626524 + local.get $z|31 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s|34 + local.get $w|32 + f64.mul + local.get $r|33 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.3 + end end return end @@ -5653,113 +5767,116 @@ i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.0 end - local.get $x|35 - local.set $x|39 - local.get $u - local.set $u|40 - local.get $u|40 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $offset - local.get $offset - i32.const 63 - i32.and - i64.extend_i32_s - local.set $shift - i32.const 4608 - local.get $offset - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.add - local.set $tblPtr - local.get $tblPtr - i64.load $0 - local.set $b0 - local.get $tblPtr - i64.load $0 offset=8 - local.set $b1 - local.get $shift - i64.const 32 - i64.gt_u - if + block $~lib/math/pio2f_large_quot|inlined.0 (result i32) + local.get $x|35 + local.set $x|39 + local.get $u + local.set $u|40 + local.get $u|40 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $offset + local.get $offset + i32.const 63 + i32.and + i64.extend_i32_s + local.set $shift + i32.const 4608 + local.get $offset + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.add + local.set $tblPtr local.get $tblPtr - i64.load $0 offset=16 - local.set $b2 - local.get $b2 - i64.const 96 - local.get $shift - i64.sub - i64.shr_u - local.set $lo - local.get $lo - local.get $b1 + i64.load $0 + local.set $b0 + local.get $tblPtr + i64.load $0 offset=8 + local.set $b1 local.get $shift i64.const 32 - i64.sub - i64.shl - i64.or - local.set $lo - else + i64.gt_u + if + local.get $tblPtr + i64.load $0 offset=16 + local.set $b2 + local.get $b2 + i64.const 96 + local.get $shift + i64.sub + i64.shr_u + local.set $lo + local.get $lo + local.get $b1 + local.get $shift + i64.const 32 + i64.sub + i64.shl + i64.or + local.set $lo + else + local.get $b1 + i64.const 32 + local.get $shift + i64.sub + i64.shr_u + local.set $lo + end local.get $b1 - i64.const 32 + i64.const 64 local.get $shift i64.sub i64.shr_u - local.set $lo + local.get $b0 + local.get $shift + i64.shl + i64.or + local.set $hi + local.get $u|40 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $mantissa + local.get $mantissa + local.get $hi + i64.mul + local.get $mantissa + local.get $lo + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $product + local.get $product + i64.const 2 + i64.shl + local.set $r|51 + local.get $product + i64.const 62 + i64.shr_u + local.get $r|51 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $q|52 + f64.const 8.515303950216386e-20 + local.get $x|39 + f64.promote_f32 + f64.copysign + local.get $r|51 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $q|52 + br $~lib/math/pio2f_large_quot|inlined.0 end - local.get $b1 - i64.const 64 - local.get $shift - i64.sub - i64.shr_u - local.get $b0 - local.get $shift - i64.shl - i64.or - local.set $hi - local.get $u|40 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $mantissa - local.get $mantissa - local.get $hi - i64.mul - local.get $mantissa - local.get $lo - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $product - local.get $product - i64.const 2 - i64.shl - local.set $r|51 - local.get $product - i64.const 62 - i64.shr_u - local.get $r|51 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $q|52 - f64.const 8.515303950216386e-20 - local.get $x|39 - f64.promote_f32 - f64.copysign - local.get $r|51 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $q|52 local.set $q|53 i32.const 0 local.get $q|53 @@ -5767,6 +5884,7 @@ local.get $q|53 local.get $sign|37 select + br $~lib/math/rempio2f|inlined.0 end local.set $n global.get $~lib/math/rempio2f_y @@ -5775,76 +5893,82 @@ i32.const 1 i32.and if (result f32) - local.get $y - local.set $x|56 - local.get $x|56 - local.get $x|56 - f64.mul - local.set $z|57 - local.get $z|57 - local.get $z|57 - f64.mul - local.set $w|58 - f64.const -1.9839334836096632e-04 - local.get $z|57 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r|59 - local.get $z|57 - local.get $x|56 - f64.mul - local.set $s|60 - local.get $x|56 - local.get $s|60 - f64.const -0.16666666641626524 - local.get $z|57 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $s|60 - local.get $w|58 - f64.mul - local.get $r|59 - f64.mul - f64.add - f32.demote_f64 + block $~lib/math/sin_kernf|inlined.4 (result f32) + local.get $y + local.set $x|56 + local.get $x|56 + local.get $x|56 + f64.mul + local.set $z|57 + local.get $z|57 + local.get $z|57 + f64.mul + local.set $w|58 + f64.const -1.9839334836096632e-04 + local.get $z|57 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $r|59 + local.get $z|57 + local.get $x|56 + f64.mul + local.set $s|60 + local.get $x|56 + local.get $s|60 + f64.const -0.16666666641626524 + local.get $z|57 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s|60 + local.get $w|58 + f64.mul + local.get $r|59 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.4 + end else - local.get $y - local.set $x|61 - local.get $x|61 - local.get $x|61 - f64.mul - local.set $z|62 - local.get $z|62 - local.get $z|62 - f64.mul - local.set $w|63 - f64.const -0.001388676377460993 - local.get $z|62 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $r|64 - f32.const 1 - f64.promote_f32 - local.get $z|62 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $w|63 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $w|63 - local.get $z|62 - f64.mul - local.get $r|64 - f64.mul - f64.add - f32.demote_f64 + block $~lib/math/cos_kernf|inlined.3 (result f32) + local.get $y + local.set $x|61 + local.get $x|61 + local.get $x|61 + f64.mul + local.set $z|62 + local.get $z|62 + local.get $z|62 + f64.mul + local.set $w|63 + f64.const -0.001388676377460993 + local.get $z|62 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $r|64 + f32.const 1 + f64.promote_f32 + local.get $z|62 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $w|63 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $w|63 + local.get $z|62 + f64.mul + local.get $r|64 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/cos_kernf|inlined.3 + end end local.set $t local.get $n @@ -5858,6 +5982,7 @@ else local.get $t end + return ) (func $std/math/test_cosf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -5866,6 +5991,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.expm1 (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -6179,6 +6305,7 @@ f64.add local.get $twopk f64.mul + return ) (func $~lib/math/NativeMath.exp (type $f64_=>_f64) (param $x f64) (result f64) (local $x|1 f64) @@ -6451,6 +6578,7 @@ local.get $y f64.const 2.2250738585072014e-308 f64.mul + br $~lib/util/math/specialcase|inlined.0 end br $~lib/util/math/exp_lut|inlined.0 end @@ -6462,6 +6590,7 @@ local.get $tmp f64.mul f64.add + br $~lib/util/math/exp_lut|inlined.0 end return ) @@ -6534,34 +6663,38 @@ f64.mul return end - local.get $x - local.set $x|4 - f64.const 1 - local.set $sign - i32.const 1023 - i32.const 2043 - i32.const 2 - i32.div_u - i32.add - i32.const 20 - i32.shl - i64.extend_i32_u - i64.const 32 - i64.shl - f64.reinterpret_i64 - local.set $scale - local.get $x|4 - f64.const 1416.0996898839683 - f64.sub - call $~lib/math/NativeMath.exp - local.get $sign - local.get $scale - f64.mul - f64.mul - local.get $scale - f64.mul + block $~lib/math/expo2|inlined.0 (result f64) + local.get $x + local.set $x|4 + f64.const 1 + local.set $sign + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_i32_u + i64.const 32 + i64.shl + f64.reinterpret_i64 + local.set $scale + local.get $x|4 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + local.get $sign + local.get $scale + f64.mul + f64.mul + local.get $scale + f64.mul + br $~lib/math/expo2|inlined.0 + end local.set $t local.get $t + return ) (func $std/math/test_cosh (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -6580,6 +6713,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.expm1 (type $f32_=>_f32) (param $x f32) (result f32) (local $u i32) @@ -6873,6 +7007,7 @@ f32.add local.get $twopk f32.mul + return ) (func $~lib/math/NativeMathf.exp (type $f32_=>_f32) (param $x f32) (result f32) (local $x|1 f32) @@ -7009,6 +7144,7 @@ local.set $y local.get $y f32.demote_f64 + br $~lib/util/math/expf_lut|inlined.0 end return ) @@ -7076,29 +7212,33 @@ f32.add return end - local.get $x - local.set $x|4 - f32.const 1 - local.set $sign - i32.const 127 - i32.const 235 - i32.const 1 - i32.shr_u - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - local.set $scale - local.get $x|4 - f32.const 162.88958740234375 - f32.sub - call $~lib/math/NativeMathf.exp - local.get $sign - local.get $scale - f32.mul - f32.mul - local.get $scale - f32.mul + block $~lib/math/expo2f|inlined.0 (result f32) + local.get $x + local.set $x|4 + f32.const 1 + local.set $sign + i32.const 127 + i32.const 235 + i32.const 1 + i32.shr_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $scale + local.get $x|4 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + local.get $sign + local.get $scale + f32.mul + f32.mul + local.get $scale + f32.mul + br $~lib/math/expo2f|inlined.0 + end + return ) (func $std/math/test_coshf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -7107,6 +7247,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_exp (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -7125,6 +7266,7 @@ else i32.const 0 end + return ) (func $std/math/test_expf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -7133,6 +7275,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_expm1 (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -7151,6 +7294,7 @@ else i32.const 0 end + return ) (func $std/math/test_expm1f (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -7159,6 +7303,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.exp2 (type $f64_=>_f64) (param $x f64) (result f64) (local $x|1 f64) @@ -7414,6 +7559,7 @@ local.get $y f64.const 2.2250738585072014e-308 f64.mul + br $~lib/util/math/specialcase2|inlined.0 end br $~lib/util/math/exp2_lut|inlined.0 end @@ -7425,7 +7571,9 @@ f64.mul local.get $scale|20 f64.add + br $~lib/util/math/exp2_lut|inlined.0 end + return ) (func $std/math/test_exp2 (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -7445,6 +7593,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.exp2 (type $f32_=>_f32) (param $x f32) (result f32) (local $x|1 f32) @@ -7568,7 +7717,9 @@ local.set $y local.get $y f32.demote_f64 + br $~lib/util/math/exp2f_lut|inlined.0 end + return ) (func $std/math/test_exp2f (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -7577,13 +7728,17 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_floor (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) (local $x f64) - local.get $value - local.set $x - local.get $x - f64.floor + block $~lib/math/NativeMath.floor|inlined.0 (result f64) + local.get $value + local.set $x + local.get $x + f64.floor + br $~lib/math/NativeMath.floor|inlined.0 + end local.get $expected local.get $error local.get $flags @@ -7598,17 +7753,22 @@ else i32.const 0 end + return ) (func $std/math/test_floorf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) (local $x f32) - local.get $value - local.set $x - local.get $x - f32.floor + block $~lib/math/NativeMathf.floor|inlined.0 (result f32) + local.get $value + local.set $x + local.get $x + f32.floor + br $~lib/math/NativeMathf.floor|inlined.0 + end local.get $expected local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.hypot (type $f64_f64_=>_f64) (param $x f64) (param $y f64) (result f64) (local $ux i64) @@ -7808,6 +7968,7 @@ f64.add f64.sqrt f64.mul + return ) (func $std/math/test_hypot (type $f64_f64_f64_f64_i32_=>_i32) (param $value1 f64) (param $value2 f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value1 @@ -7817,6 +7978,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMathf.hypot (type $f32_f32_=>_f32) (param $x f32) (param $y f32) (result f32) (local $ux i32) @@ -7948,6 +8110,7 @@ f32.demote_f64 f32.sqrt f32.mul + return ) (func $std/math/test_hypotf (type $f32_f32_f32_f32_i32_=>_i32) (param $value1 f32) (param $value2 f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value1 @@ -7957,6 +8120,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_log (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -7975,6 +8139,7 @@ else i32.const 0 end + return ) (func $std/math/test_logf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -7983,6 +8148,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.log10 (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -8244,6 +8410,7 @@ local.get $val_lo local.get $w f64.add + return ) (func $std/math/test_log10 (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -8262,6 +8429,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.log10 (type $f32_=>_f32) (param $x f32) (result f32) (local $ux i32) @@ -8463,6 +8631,7 @@ f32.const 0.3010292053222656 f32.mul f32.add + return ) (func $std/math/test_log10f (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -8471,6 +8640,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_log1p (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -8489,6 +8659,7 @@ else i32.const 0 end + return ) (func $std/math/test_log1pf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -8497,6 +8668,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.log2 (type $f64_=>_f64) (param $x f64) (result f64) (local $x|1 f64) @@ -8857,6 +9029,7 @@ f64.add local.get $hi|29 f64.add + br $~lib/util/math/log2_lut|inlined.0 end return ) @@ -8877,6 +9050,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.log2 (type $f32_=>_f32) (param $x f32) (result f32) (local $x|1 f32) @@ -9050,6 +9224,7 @@ local.set $y local.get $y f32.demote_f64 + br $~lib/util/math/log2f_lut|inlined.0 end return ) @@ -9060,17 +9235,21 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_max (type $f64_f64_f64_f64_i32_=>_i32) (param $left f64) (param $right f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) (local $value1 f64) (local $value2 f64) - local.get $left - local.set $value1 - local.get $right - local.set $value2 - local.get $value1 - local.get $value2 - f64.max + block $~lib/math/NativeMath.max|inlined.0 (result f64) + local.get $left + local.set $value1 + local.get $right + local.set $value2 + local.get $value1 + local.get $value2 + f64.max + br $~lib/math/NativeMath.max|inlined.0 + end local.get $expected local.get $error local.get $flags @@ -9086,32 +9265,40 @@ else i32.const 0 end + return ) (func $std/math/test_maxf (type $f32_f32_f32_f32_i32_=>_i32) (param $left f32) (param $right f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) (local $value1 f32) (local $value2 f32) - local.get $left - local.set $value1 - local.get $right - local.set $value2 - local.get $value1 - local.get $value2 - f32.max + block $~lib/math/NativeMathf.max|inlined.0 (result f32) + local.get $left + local.set $value1 + local.get $right + local.set $value2 + local.get $value1 + local.get $value2 + f32.max + br $~lib/math/NativeMathf.max|inlined.0 + end local.get $expected local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_min (type $f64_f64_f64_f64_i32_=>_i32) (param $left f64) (param $right f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) (local $value1 f64) (local $value2 f64) - local.get $left - local.set $value1 - local.get $right - local.set $value2 - local.get $value1 - local.get $value2 - f64.min + block $~lib/math/NativeMath.min|inlined.0 (result f64) + local.get $left + local.set $value1 + local.get $right + local.set $value2 + local.get $value1 + local.get $value2 + f64.min + br $~lib/math/NativeMath.min|inlined.0 + end local.get $expected local.get $error local.get $flags @@ -9127,21 +9314,26 @@ else i32.const 0 end + return ) (func $std/math/test_minf (type $f32_f32_f32_f32_i32_=>_i32) (param $left f32) (param $right f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) (local $value1 f32) (local $value2 f32) - local.get $left - local.set $value1 - local.get $right - local.set $value2 - local.get $value1 - local.get $value2 - f32.min + block $~lib/math/NativeMathf.min|inlined.0 (result f32) + local.get $left + local.set $value1 + local.get $right + local.set $value2 + local.get $value1 + local.get $value2 + f32.min + br $~lib/math/NativeMathf.min|inlined.0 + end local.get $expected local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.mod (type $f64_f64_=>_f64) (param $x f64) (param $y f64) (result f64) (local $ux i64) @@ -9152,7 +9344,6 @@ (local $uy1 i64) (local $m f64) (local $ux1 i64) - (local $10 i32) (local $shift i64) local.get $y f64.abs @@ -9304,8 +9495,6 @@ local.get $ex local.get $ey i64.gt_s - local.set $10 - local.get $10 if local.get $ux local.get $uy @@ -9399,6 +9588,7 @@ i64.shl i64.or f64.reinterpret_i64 + return ) (func $std/math/test_mod (type $f64_f64_f64_f64_i32_=>_i32) (param $left f64) (param $right f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $left @@ -9419,6 +9609,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.mod (type $f32_f32_=>_f32) (param $x f32) (param $y f32) (result f32) (local $ux i32) @@ -9429,7 +9620,6 @@ (local $uy1 i32) (local $m f32) (local $ux1 i32) - (local $10 i32) (local $shift i32) local.get $y f32.abs @@ -9577,8 +9767,6 @@ local.get $ex local.get $ey i32.gt_s - local.set $10 - local.get $10 if local.get $ux local.get $uy @@ -9670,6 +9858,7 @@ local.get $sm i32.or f32.reinterpret_i32 + return ) (func $std/math/test_modf (type $f32_f32_f32_f32_i32_=>_i32) (param $left f32) (param $right f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $left @@ -9679,6 +9868,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.pow (type $f64_f64_=>_f64) (param $x f64) (param $y f64) (result f64) (local $x|2 f64) @@ -9863,17 +10053,20 @@ i64.ge_u end if - local.get $iy - local.set $u - local.get $u - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740992 - i64.const 1 - i64.sub - i64.ge_u + block $~lib/util/math/zeroinfnan|inlined.0 (result i32) + local.get $iy + local.set $u + local.get $u + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + br $~lib/util/math/zeroinfnan|inlined.0 + end if local.get $iy i64.const 1 @@ -9941,17 +10134,20 @@ f64.mul br $~lib/util/math/pow_lut|inlined.0 end - local.get $ix - local.set $u|10 - local.get $u|10 - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740992 - i64.const 1 - i64.sub - i64.ge_u + block $~lib/util/math/zeroinfnan|inlined.1 (result i32) + local.get $ix + local.set $u|10 + local.get $u|10 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740992 + i64.const 1 + i64.sub + i64.ge_u + br $~lib/util/math/zeroinfnan|inlined.1 + end if local.get $x|2 local.get $x|2 @@ -10016,6 +10212,7 @@ br $~lib/util/math/checkint|inlined.0 end i32.const 2 + br $~lib/util/math/checkint|inlined.0 end i32.const 1 i32.eq @@ -10097,6 +10294,7 @@ br $~lib/util/math/checkint|inlined.1 end i32.const 2 + br $~lib/util/math/checkint|inlined.1 end local.set $yint local.get $yint @@ -10189,196 +10387,199 @@ local.set $ix end end - local.get $ix - local.set $ix|17 - local.get $ix|17 - i64.const 4604531861337669632 - i64.sub - local.set $tmp - local.get $tmp - i64.const 52 - i32.const 7 - i64.extend_i32_s - i64.sub - i64.shr_u - i32.const 127 - i64.extend_i32_s - i64.and - i32.wrap_i64 - local.set $i - local.get $tmp - i64.const 52 - i64.shr_s - local.set $k - local.get $ix|17 - local.get $tmp - i64.const 4095 - i64.const 52 - i64.shl - i64.and - i64.sub - local.set $iz - local.get $iz - f64.reinterpret_i64 - local.set $z - local.get $k - f64.convert_i64_s - local.set $kd - i32.const 9248 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 - local.set $invc - i32.const 9248 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 offset=16 - local.set $logc - i32.const 9248 - local.get $i - i32.const 2 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 offset=24 - local.set $logctail - local.get $iz - i64.const 2147483648 - i64.add - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.set $zhi - local.get $z - local.get $zhi - f64.sub - local.set $zlo - local.get $zhi - local.get $invc - f64.mul - f64.const 1 - f64.sub - local.set $rhi - local.get $zlo - local.get $invc - f64.mul - local.set $rlo - local.get $rhi - local.get $rlo - f64.add - local.set $r - local.get $kd - f64.const 0.6931471805598903 - f64.mul - local.get $logc - f64.add - local.set $t1 - local.get $t1 - local.get $r - f64.add - local.set $t2 - local.get $kd - f64.const 5.497923018708371e-14 - f64.mul - local.get $logctail - f64.add - local.set $lo1 - local.get $t1 - local.get $t2 - f64.sub - local.get $r - f64.add - local.set $lo2 - f64.const -0.5 - local.get $r - f64.mul - local.set $ar - local.get $r - local.get $ar - f64.mul - local.set $ar2 - local.get $r - local.get $ar2 - f64.mul - local.set $ar3 - f64.const -0.5 - local.get $rhi - f64.mul - local.set $arhi - local.get $rhi - local.get $arhi - f64.mul - local.set $arhi2 - local.get $t2 - local.get $arhi2 - f64.add - local.set $hi - local.get $rlo - local.get $ar - local.get $arhi - f64.add - f64.mul - local.set $lo3 - local.get $t2 - local.get $hi - f64.sub - local.get $arhi2 - f64.add - local.set $lo4 - local.get $ar3 - f64.const -0.6666666666666679 - local.get $r - f64.const 0.5000000000000007 - f64.mul - f64.add - local.get $ar2 - f64.const 0.7999999995323976 - local.get $r - f64.const -0.6666666663487739 - f64.mul - f64.add - local.get $ar2 - f64.const -1.142909628459501 - local.get $r - f64.const 1.0000415263675542 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.set $p - local.get $lo1 - local.get $lo2 - f64.add - local.get $lo3 - f64.add - local.get $lo4 - f64.add - local.get $p - f64.add - local.set $lo - local.get $hi - local.get $lo - f64.add - local.set $y|46 - local.get $hi - local.get $y|46 - f64.sub - local.get $lo - f64.add - global.set $~lib/util/math/log_tail - local.get $y|46 + block $~lib/util/math/log_inline|inlined.0 (result f64) + local.get $ix + local.set $ix|17 + local.get $ix|17 + i64.const 4604531861337669632 + i64.sub + local.set $tmp + local.get $tmp + i64.const 52 + i32.const 7 + i64.extend_i32_s + i64.sub + i64.shr_u + i32.const 127 + i64.extend_i32_s + i64.and + i32.wrap_i64 + local.set $i + local.get $tmp + i64.const 52 + i64.shr_s + local.set $k + local.get $ix|17 + local.get $tmp + i64.const 4095 + i64.const 52 + i64.shl + i64.and + i64.sub + local.set $iz + local.get $iz + f64.reinterpret_i64 + local.set $z + local.get $k + f64.convert_i64_s + local.set $kd + i32.const 9248 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 + local.set $invc + i32.const 9248 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 offset=16 + local.set $logc + i32.const 9248 + local.get $i + i32.const 2 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 offset=24 + local.set $logctail + local.get $iz + i64.const 2147483648 + i64.add + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.set $zhi + local.get $z + local.get $zhi + f64.sub + local.set $zlo + local.get $zhi + local.get $invc + f64.mul + f64.const 1 + f64.sub + local.set $rhi + local.get $zlo + local.get $invc + f64.mul + local.set $rlo + local.get $rhi + local.get $rlo + f64.add + local.set $r + local.get $kd + f64.const 0.6931471805598903 + f64.mul + local.get $logc + f64.add + local.set $t1 + local.get $t1 + local.get $r + f64.add + local.set $t2 + local.get $kd + f64.const 5.497923018708371e-14 + f64.mul + local.get $logctail + f64.add + local.set $lo1 + local.get $t1 + local.get $t2 + f64.sub + local.get $r + f64.add + local.set $lo2 + f64.const -0.5 + local.get $r + f64.mul + local.set $ar + local.get $r + local.get $ar + f64.mul + local.set $ar2 + local.get $r + local.get $ar2 + f64.mul + local.set $ar3 + f64.const -0.5 + local.get $rhi + f64.mul + local.set $arhi + local.get $rhi + local.get $arhi + f64.mul + local.set $arhi2 + local.get $t2 + local.get $arhi2 + f64.add + local.set $hi + local.get $rlo + local.get $ar + local.get $arhi + f64.add + f64.mul + local.set $lo3 + local.get $t2 + local.get $hi + f64.sub + local.get $arhi2 + f64.add + local.set $lo4 + local.get $ar3 + f64.const -0.6666666666666679 + local.get $r + f64.const 0.5000000000000007 + f64.mul + f64.add + local.get $ar2 + f64.const 0.7999999995323976 + local.get $r + f64.const -0.6666666663487739 + f64.mul + f64.add + local.get $ar2 + f64.const -1.142909628459501 + local.get $r + f64.const 1.0000415263675542 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $p + local.get $lo1 + local.get $lo2 + f64.add + local.get $lo3 + f64.add + local.get $lo4 + f64.add + local.get $p + f64.add + local.set $lo + local.get $hi + local.get $lo + f64.add + local.set $y|46 + local.get $hi + local.get $y|46 + f64.sub + local.get $lo + f64.add + global.set $~lib/util/math/log_tail + local.get $y|46 + br $~lib/util/math/log_inline|inlined.0 + end local.set $hi|47 global.get $~lib/util/math/log_tail local.set $lo|48 @@ -10458,35 +10659,47 @@ i64.const 0 i64.lt_s if (result f64) - local.get $sign_bias|57 - local.set $sign - local.get $sign - local.set $sign|72 - i64.const 1152921504606846976 - f64.reinterpret_i64 - local.set $y|73 - local.get $y|73 - f64.neg - local.get $y|73 - local.get $sign|72 - select - local.get $y|73 - f64.mul + block $~lib/util/math/uflow|inlined.0 (result f64) + local.get $sign_bias|57 + local.set $sign + block $~lib/util/math/xflow|inlined.0 (result f64) + local.get $sign + local.set $sign|72 + i64.const 1152921504606846976 + f64.reinterpret_i64 + local.set $y|73 + local.get $y|73 + f64.neg + local.get $y|73 + local.get $sign|72 + select + local.get $y|73 + f64.mul + br $~lib/util/math/xflow|inlined.0 + end + br $~lib/util/math/uflow|inlined.0 + end else - local.get $sign_bias|57 - local.set $sign|74 - local.get $sign|74 - local.set $sign|75 - i64.const 8070450532247928832 - f64.reinterpret_i64 - local.set $y|76 - local.get $y|76 - f64.neg - local.get $y|76 - local.get $sign|75 - select - local.get $y|76 - f64.mul + block $~lib/util/math/oflow|inlined.0 (result f64) + local.get $sign_bias|57 + local.set $sign|74 + block $~lib/util/math/xflow|inlined.1 (result f64) + local.get $sign|74 + local.set $sign|75 + i64.const 8070450532247928832 + f64.reinterpret_i64 + local.set $y|76 + local.get $y|76 + f64.neg + local.get $y|76 + local.get $sign|75 + select + local.get $y|76 + f64.mul + br $~lib/util/math/xflow|inlined.1 + end + br $~lib/util/math/oflow|inlined.0 + end end br $~lib/util/math/exp_inline|inlined.0 end @@ -10683,6 +10896,7 @@ local.get $y|81 f64.const 2.2250738585072014e-308 f64.mul + br $~lib/util/math/specialcase|inlined.1 end br $~lib/util/math/exp_inline|inlined.0 end @@ -10694,7 +10908,9 @@ local.get $tmp|69 f64.mul f64.add + br $~lib/util/math/exp_inline|inlined.0 end + br $~lib/util/math/pow_lut|inlined.0 end return ) @@ -10717,6 +10933,7 @@ else i32.const 0 end + return ) (func $~lib/object/Object.is (type $f64_f64_=>_i32) (param $x f64) (param $y f64) (result i32) i32.const 1 @@ -10865,19 +11082,22 @@ i32.const 8388608 i32.sub i32.ge_u - local.get $iy - local.set $ux - local.get $ux - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.const 2139095040 - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.ge_u + block $~lib/util/math/zeroinfnanf|inlined.0 (result i32) + local.get $iy + local.set $ux + local.get $ux + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.ge_u + br $~lib/util/math/zeroinfnanf|inlined.0 + end i32.const 0 i32.ne local.tee $ny @@ -10957,19 +11177,22 @@ f32.mul br $~lib/util/math/powf_lut|inlined.0 end - local.get $ix - local.set $ux|9 - local.get $ux|9 - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.const 2139095040 - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.ge_u + block $~lib/util/math/zeroinfnanf|inlined.1 (result i32) + local.get $ix + local.set $ux|9 + local.get $ux|9 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.ge_u + br $~lib/util/math/zeroinfnanf|inlined.1 + end if local.get $x|2 local.get $x|2 @@ -11029,6 +11252,7 @@ br $~lib/util/math/checkintf|inlined.0 end i32.const 2 + br $~lib/util/math/checkintf|inlined.0 end i32.const 1 i32.eq @@ -11106,6 +11330,7 @@ br $~lib/util/math/checkintf|inlined.1 end i32.const 2 + br $~lib/util/math/checkintf|inlined.1 end local.set $yint local.get $yint @@ -11154,102 +11379,105 @@ local.set $ix end end - local.get $ix - local.set $ux|16 - local.get $ux|16 - i32.const 1060306944 - i32.sub - local.set $tmp - local.get $tmp - i32.const 23 - i32.const 4 - i32.sub - i32.shr_u - i32.const 15 - i32.and - local.set $i - local.get $tmp - i32.const -8388608 - i32.and - local.set $top - local.get $ux|16 - local.get $top - i32.sub - local.set $uz - local.get $top - i32.const 23 - i32.shr_s - local.set $k - i32.const 8992 - local.get $i - i32.const 1 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 - local.set $invc - i32.const 8992 - local.get $i - i32.const 1 - i32.const 3 - i32.add - i32.shl - i32.add - f64.load $0 offset=8 - local.set $logc - local.get $uz - f32.reinterpret_i32 - f64.promote_f32 - local.set $z - local.get $z - local.get $invc - f64.mul - f64.const 1 - f64.sub - local.set $r - local.get $logc - local.get $k - f64.convert_i32_s - f64.add - local.set $y0 - f64.const 0.288457581109214 - local.get $r - f64.mul - f64.const -0.36092606229713164 - f64.add - local.set $y|27 - f64.const 0.480898481472577 - local.get $r - f64.mul - f64.const -0.7213474675006291 - f64.add - local.set $p - f64.const 1.4426950408774342 - local.get $r - f64.mul - local.get $y0 - f64.add - local.set $q - local.get $r - local.get $r - f64.mul - local.set $r - local.get $q - local.get $p - local.get $r - f64.mul - f64.add - local.set $q - local.get $y|27 - local.get $r - local.get $r - f64.mul - f64.mul - local.get $q - f64.add - local.set $y|27 - local.get $y|27 + block $~lib/util/math/log2f_inline|inlined.0 (result f64) + local.get $ix + local.set $ux|16 + local.get $ux|16 + i32.const 1060306944 + i32.sub + local.set $tmp + local.get $tmp + i32.const 23 + i32.const 4 + i32.sub + i32.shr_u + i32.const 15 + i32.and + local.set $i + local.get $tmp + i32.const -8388608 + i32.and + local.set $top + local.get $ux|16 + local.get $top + i32.sub + local.set $uz + local.get $top + i32.const 23 + i32.shr_s + local.set $k + i32.const 8992 + local.get $i + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 + local.set $invc + i32.const 8992 + local.get $i + i32.const 1 + i32.const 3 + i32.add + i32.shl + i32.add + f64.load $0 offset=8 + local.set $logc + local.get $uz + f32.reinterpret_i32 + f64.promote_f32 + local.set $z + local.get $z + local.get $invc + f64.mul + f64.const 1 + f64.sub + local.set $r + local.get $logc + local.get $k + f64.convert_i32_s + f64.add + local.set $y0 + f64.const 0.288457581109214 + local.get $r + f64.mul + f64.const -0.36092606229713164 + f64.add + local.set $y|27 + f64.const 0.480898481472577 + local.get $r + f64.mul + f64.const -0.7213474675006291 + f64.add + local.set $p + f64.const 1.4426950408774342 + local.get $r + f64.mul + local.get $y0 + f64.add + local.set $q + local.get $r + local.get $r + f64.mul + local.set $r + local.get $q + local.get $p + local.get $r + f64.mul + f64.add + local.set $q + local.get $y|27 + local.get $r + local.get $r + f64.mul + f64.mul + local.get $q + f64.add + local.set $y|27 + local.get $y|27 + br $~lib/util/math/log2f_inline|inlined.0 + end local.set $logx local.get $y|3 f64.promote_f32 @@ -11269,111 +11497,127 @@ f64.const 127.99999995700433 f64.gt if - local.get $signBias - local.set $sign - local.get $sign - local.set $sign|33 - i32.const 1879048192 - f32.reinterpret_i32 - local.set $y|34 - local.get $y|34 - f32.neg - local.get $y|34 - local.get $sign|33 - select - local.get $y|34 - f32.mul + block $~lib/util/math/oflowf|inlined.0 (result f32) + local.get $signBias + local.set $sign + block $~lib/util/math/xflowf|inlined.0 (result f32) + local.get $sign + local.set $sign|33 + i32.const 1879048192 + f32.reinterpret_i32 + local.set $y|34 + local.get $y|34 + f32.neg + local.get $y|34 + local.get $sign|33 + select + local.get $y|34 + f32.mul + br $~lib/util/math/xflowf|inlined.0 + end + br $~lib/util/math/oflowf|inlined.0 + end br $~lib/util/math/powf_lut|inlined.0 end local.get $ylogx f64.const -150 f64.le if - local.get $signBias - local.set $sign|35 - local.get $sign|35 - local.set $sign|36 - i32.const 268435456 - f32.reinterpret_i32 - local.set $y|37 - local.get $y|37 - f32.neg - local.get $y|37 - local.get $sign|36 - select - local.get $y|37 - f32.mul + block $~lib/util/math/uflowf|inlined.0 (result f32) + local.get $signBias + local.set $sign|35 + block $~lib/util/math/xflowf|inlined.1 (result f32) + local.get $sign|35 + local.set $sign|36 + i32.const 268435456 + f32.reinterpret_i32 + local.set $y|37 + local.get $y|37 + f32.neg + local.get $y|37 + local.get $sign|36 + select + local.get $y|37 + f32.mul + br $~lib/util/math/xflowf|inlined.1 + end + br $~lib/util/math/uflowf|inlined.0 + end br $~lib/util/math/powf_lut|inlined.0 end end - local.get $ylogx - local.set $xd - local.get $signBias - local.set $signBias|39 - local.get $xd - f64.const 211106232532992 - f64.add - local.set $kd - local.get $kd - i64.reinterpret_f64 - local.set $ki - local.get $xd - local.get $kd - f64.const 211106232532992 - f64.sub - f64.sub - local.set $r|42 - i32.const 6688 - local.get $ki - i32.wrap_i64 - i32.const 31 - i32.and - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.set $t - local.get $t - local.get $ki - local.get $signBias|39 - i64.extend_i32_u - i64.add - i64.const 52 - i32.const 5 - i64.extend_i32_s - i64.sub - i64.shl - i64.add - local.set $t - local.get $t - f64.reinterpret_i64 - local.set $s - f64.const 0.05550361559341535 - local.get $r|42 - f64.mul - f64.const 0.2402284522445722 - f64.add - local.set $z|44 - f64.const 0.6931471806916203 - local.get $r|42 - f64.mul - f64.const 1 - f64.add - local.set $y|45 - local.get $y|45 - local.get $z|44 - local.get $r|42 - local.get $r|42 - f64.mul - f64.mul - f64.add - local.set $y|45 - local.get $y|45 - local.get $s - f64.mul - local.set $y|45 - local.get $y|45 - f32.demote_f64 + block $~lib/util/math/exp2f_inline|inlined.0 (result f32) + local.get $ylogx + local.set $xd + local.get $signBias + local.set $signBias|39 + local.get $xd + f64.const 211106232532992 + f64.add + local.set $kd + local.get $kd + i64.reinterpret_f64 + local.set $ki + local.get $xd + local.get $kd + f64.const 211106232532992 + f64.sub + f64.sub + local.set $r|42 + i32.const 6688 + local.get $ki + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.set $t + local.get $t + local.get $ki + local.get $signBias|39 + i64.extend_i32_u + i64.add + i64.const 52 + i32.const 5 + i64.extend_i32_s + i64.sub + i64.shl + i64.add + local.set $t + local.get $t + f64.reinterpret_i64 + local.set $s + f64.const 0.05550361559341535 + local.get $r|42 + f64.mul + f64.const 0.2402284522445722 + f64.add + local.set $z|44 + f64.const 0.6931471806916203 + local.get $r|42 + f64.mul + f64.const 1 + f64.add + local.set $y|45 + local.get $y|45 + local.get $z|44 + local.get $r|42 + local.get $r|42 + f64.mul + f64.mul + f64.add + local.set $y|45 + local.get $y|45 + local.get $s + f64.mul + local.set $y|45 + local.get $y|45 + f32.demote_f64 + br $~lib/util/math/exp2f_inline|inlined.0 + end + br $~lib/util/math/powf_lut|inlined.0 end return ) @@ -11385,6 +11629,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/murmurHash3 (type $i64_=>_i64) (param $h i64) (result i64) local.get $h @@ -11414,6 +11659,7 @@ i64.xor local.set $h local.get $h + return ) (func $~lib/math/splitMix32 (type $i32_=>_i32) (param $h i32) (result i32) local.get $h @@ -11449,6 +11695,7 @@ i32.const 14 i32.shr_u i32.xor + return ) (func $~lib/math/NativeMath.seedRandom (type $i64_=>_none) (param $value i64) local.get $value @@ -11527,6 +11774,7 @@ f64.reinterpret_i64 f64.const 1 f64.sub + return ) (func $~lib/math/NativeMathf.random (type $none_=>_f32) (result f32) (local $value i64) @@ -11582,6 +11830,7 @@ f32.reinterpret_i32 f32.const 1 f32.sub + return ) (func $~lib/math/NativeMath.round (type $f64_=>_f64) (param $x f64) (result f64) (local $roundUp f64) @@ -11611,6 +11860,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMathf.round (type $f32_=>_f32) (param $x f32) (result f32) (local $roundUp f32) @@ -11640,6 +11890,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.sign (type $f64_=>_f64) (param $x f64) (result f64) i32.const 0 @@ -11676,6 +11927,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.sign (type $f32_=>_f32) (param $x f32) (result f32) i32.const 0 @@ -11702,6 +11954,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.rem (type $f64_f64_=>_f64) (param $x f64) (param $y f64) (result f64) (local $ux i64) @@ -11711,7 +11964,6 @@ (local $m f64) (local $uxi i64) (local $q i32) - (local $9 i32) (local $shift i64) (local $x2 f64) local.get $x @@ -11859,8 +12111,6 @@ local.get $ex local.get $ey i64.gt_s - local.set $9 - local.get $9 if local.get $uxi local.get $uy @@ -12012,6 +12262,7 @@ else local.get $x end + return ) (func $std/math/test_rem (type $f64_f64_f64_f64_i32_=>_i32) (param $left f64) (param $right f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $left @@ -12021,6 +12272,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMathf.rem (type $f32_f32_=>_f32) (param $x f32) (param $y f32) (result f32) (local $ux i32) @@ -12029,7 +12281,6 @@ (local $ey i32) (local $uxi i32) (local $q i32) - (local $8 i32) (local $shift i32) (local $x2 f32) local.get $x @@ -12173,8 +12424,6 @@ local.get $ex local.get $ey i32.gt_s - local.set $8 - local.get $8 if local.get $uxi local.get $uy @@ -12326,6 +12575,7 @@ else local.get $x end + return ) (func $std/math/test_remf (type $f32_f32_f32_f32_i32_=>_i32) (param $left f32) (param $right f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $left @@ -12335,6 +12585,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.sin (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -12737,6 +12988,7 @@ local.get $q|29 local.get $sign|13 select + br $~lib/math/rempio2|inlined.1 end local.set $n global.get $~lib/math/rempio2_y0 @@ -12747,67 +12999,70 @@ i32.const 1 i32.and if (result f64) - local.get $y0|31 - local.set $x|33 - local.get $y1|32 - local.set $y|34 - local.get $x|33 - local.get $x|33 - f64.mul - local.set $z|35 - local.get $z|35 - local.get $z|35 - f64.mul - local.set $w|36 - local.get $z|35 - f64.const 0.0416666666666666 - local.get $z|35 - f64.const -0.001388888888887411 - local.get $z|35 - f64.const 2.480158728947673e-05 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.get $w|36 - local.get $w|36 - f64.mul - f64.const -2.7557314351390663e-07 - local.get $z|35 - f64.const 2.087572321298175e-09 - local.get $z|35 - f64.const -1.1359647557788195e-11 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.set $r|37 - f64.const 0.5 - local.get $z|35 - f64.mul - local.set $hz - f64.const 1 - local.get $hz - f64.sub - local.set $w|36 - local.get $w|36 - f64.const 1 - local.get $w|36 - f64.sub - local.get $hz - f64.sub - local.get $z|35 - local.get $r|37 - f64.mul - local.get $x|33 - local.get $y|34 - f64.mul - f64.sub - f64.add - f64.add + block $~lib/math/cos_kern|inlined.2 (result f64) + local.get $y0|31 + local.set $x|33 + local.get $y1|32 + local.set $y|34 + local.get $x|33 + local.get $x|33 + f64.mul + local.set $z|35 + local.get $z|35 + local.get $z|35 + f64.mul + local.set $w|36 + local.get $z|35 + f64.const 0.0416666666666666 + local.get $z|35 + f64.const -0.001388888888887411 + local.get $z|35 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $w|36 + local.get $w|36 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $z|35 + f64.const 2.087572321298175e-09 + local.get $z|35 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $r|37 + f64.const 0.5 + local.get $z|35 + f64.mul + local.set $hz + f64.const 1 + local.get $hz + f64.sub + local.set $w|36 + local.get $w|36 + f64.const 1 + local.get $w|36 + f64.sub + local.get $hz + f64.sub + local.get $z|35 + local.get $r|37 + f64.mul + local.get $x|33 + local.get $y|34 + f64.mul + f64.sub + f64.add + f64.add + br $~lib/math/cos_kern|inlined.2 + end else block $~lib/math/sin_kern|inlined.2 (result f64) local.get $y0|31 @@ -12894,6 +13149,7 @@ else local.get $x end + return ) (func $std/math/test_sin (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -12912,6 +13168,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.sin (type $f32_=>_f32) (param $x f32) (result f32) (local $ux i32) @@ -13000,43 +13257,46 @@ local.get $x return end - local.get $x - f64.promote_f32 - local.set $x|3 - local.get $x|3 - local.get $x|3 - f64.mul - local.set $z - local.get $z - local.get $z - f64.mul - local.set $w - f64.const -1.9839334836096632e-04 - local.get $z - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r - local.get $z - local.get $x|3 - f64.mul - local.set $s - local.get $x|3 - local.get $s - f64.const -0.16666666641626524 - local.get $z - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $s - local.get $w - f64.mul - local.get $r - f64.mul - f64.add - f32.demote_f64 + block $~lib/math/sin_kernf|inlined.5 (result f32) + local.get $x + f64.promote_f32 + local.set $x|3 + local.get $x|3 + local.get $x|3 + f64.mul + local.set $z + local.get $z + local.get $z + f64.mul + local.set $w + f64.const -1.9839334836096632e-04 + local.get $z + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $r + local.get $z + local.get $x|3 + f64.mul + local.set $s + local.get $x|3 + local.get $s + f64.const -0.16666666641626524 + local.get $z + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s + local.get $w + f64.mul + local.get $r + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.5 + end return end i32.const 0 @@ -13053,131 +13313,140 @@ if local.get $sign if (result f32) + block $~lib/math/cos_kernf|inlined.4 (result f32) + local.get $x + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.set $x|8 + local.get $x|8 + local.get $x|8 + f64.mul + local.set $z|9 + local.get $z|9 + local.get $z|9 + f64.mul + local.set $w|10 + f64.const -0.001388676377460993 + local.get $z|9 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $r|11 + f32.const 1 + f64.promote_f32 + local.get $z|9 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $w|10 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $w|10 + local.get $z|9 + f64.mul + local.get $r|11 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/cos_kernf|inlined.4 + end + f32.neg + else + block $~lib/math/cos_kernf|inlined.5 (result f32) + local.get $x + f64.promote_f32 + f64.const 1.5707963267948966 + f64.sub + local.set $x|12 + local.get $x|12 + local.get $x|12 + f64.mul + local.set $z|13 + local.get $z|13 + local.get $z|13 + f64.mul + local.set $w|14 + f64.const -0.001388676377460993 + local.get $z|13 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $r|15 + f32.const 1 + f64.promote_f32 + local.get $z|13 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $w|14 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $w|14 + local.get $z|13 + f64.mul + local.get $r|15 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/cos_kernf|inlined.5 + end + end + return + end + block $~lib/math/sin_kernf|inlined.6 (result f32) + local.get $sign + if (result f64) local.get $x f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - local.set $x|8 - local.get $x|8 - local.get $x|8 - f64.mul - local.set $z|9 - local.get $z|9 - local.get $z|9 - f64.mul - local.set $w|10 - f64.const -0.001388676377460993 - local.get $z|9 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $r|11 - f32.const 1 - f64.promote_f32 - local.get $z|9 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $w|10 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $w|10 - local.get $z|9 - f64.mul - local.get $r|11 - f64.mul + f64.const 3.141592653589793 f64.add - f32.demote_f64 - f32.neg else local.get $x f64.promote_f32 - f64.const 1.5707963267948966 + f64.const 3.141592653589793 f64.sub - local.set $x|12 - local.get $x|12 - local.get $x|12 - f64.mul - local.set $z|13 - local.get $z|13 - local.get $z|13 - f64.mul - local.set $w|14 - f64.const -0.001388676377460993 - local.get $z|13 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $r|15 - f32.const 1 - f64.promote_f32 - local.get $z|13 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $w|14 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $w|14 - local.get $z|13 - f64.mul - local.get $r|15 - f64.mul - f64.add - f32.demote_f64 end - return - end - local.get $sign - if (result f64) - local.get $x - f64.promote_f32 - f64.const 3.141592653589793 + f64.neg + local.set $x|16 + local.get $x|16 + local.get $x|16 + f64.mul + local.set $z|17 + local.get $z|17 + local.get $z|17 + f64.mul + local.set $w|18 + f64.const -1.9839334836096632e-04 + local.get $z|17 + f64.const 2.718311493989822e-06 + f64.mul f64.add - else - local.get $x - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub + local.set $r|19 + local.get $z|17 + local.get $x|16 + f64.mul + local.set $s|20 + local.get $x|16 + local.get $s|20 + f64.const -0.16666666641626524 + local.get $z|17 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s|20 + local.get $w|18 + f64.mul + local.get $r|19 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.6 end - f64.neg - local.set $x|16 - local.get $x|16 - local.get $x|16 - f64.mul - local.set $z|17 - local.get $z|17 - local.get $z|17 - f64.mul - local.set $w|18 - f64.const -1.9839334836096632e-04 - local.get $z|17 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r|19 - local.get $z|17 - local.get $x|16 - f64.mul - local.set $s|20 - local.get $x|16 - local.get $s|20 - f64.const -0.16666666641626524 - local.get $z|17 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $s|20 - local.get $w|18 - f64.mul - local.get $r|19 - f64.mul - f64.add - f32.demote_f64 return end local.get $ux @@ -13190,130 +13459,139 @@ if local.get $sign if (result f32) + block $~lib/math/cos_kernf|inlined.6 (result f32) + local.get $x + f64.promote_f32 + f64.const 4.71238898038469 + f64.add + local.set $x|21 + local.get $x|21 + local.get $x|21 + f64.mul + local.set $z|22 + local.get $z|22 + local.get $z|22 + f64.mul + local.set $w|23 + f64.const -0.001388676377460993 + local.get $z|22 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $r|24 + f32.const 1 + f64.promote_f32 + local.get $z|22 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $w|23 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $w|23 + local.get $z|22 + f64.mul + local.get $r|24 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/cos_kernf|inlined.6 + end + else + block $~lib/math/cos_kernf|inlined.7 (result f32) + local.get $x + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + local.set $x|25 + local.get $x|25 + local.get $x|25 + f64.mul + local.set $z|26 + local.get $z|26 + local.get $z|26 + f64.mul + local.set $w|27 + f64.const -0.001388676377460993 + local.get $z|26 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $r|28 + f32.const 1 + f64.promote_f32 + local.get $z|26 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $w|27 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $w|27 + local.get $z|26 + f64.mul + local.get $r|28 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/cos_kernf|inlined.7 + end + f32.neg + end + return + end + block $~lib/math/sin_kernf|inlined.7 (result f32) + local.get $sign + if (result f64) local.get $x f64.promote_f32 - f64.const 4.71238898038469 - f64.add - local.set $x|21 - local.get $x|21 - local.get $x|21 - f64.mul - local.set $z|22 - local.get $z|22 - local.get $z|22 - f64.mul - local.set $w|23 - f64.const -0.001388676377460993 - local.get $z|22 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $r|24 - f32.const 1 - f64.promote_f32 - local.get $z|22 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $w|23 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $w|23 - local.get $z|22 - f64.mul - local.get $r|24 - f64.mul + f64.const 6.283185307179586 f64.add - f32.demote_f64 else local.get $x f64.promote_f32 - f64.const 4.71238898038469 + f64.const 6.283185307179586 f64.sub - local.set $x|25 - local.get $x|25 - local.get $x|25 - f64.mul - local.set $z|26 - local.get $z|26 - local.get $z|26 - f64.mul - local.set $w|27 - f64.const -0.001388676377460993 - local.get $z|26 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $r|28 - f32.const 1 - f64.promote_f32 - local.get $z|26 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $w|27 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $w|27 - local.get $z|26 - f64.mul - local.get $r|28 - f64.mul - f64.add - f32.demote_f64 - f32.neg end - return - end - local.get $sign - if (result f64) - local.get $x - f64.promote_f32 - f64.const 6.283185307179586 + local.set $x|29 + local.get $x|29 + local.get $x|29 + f64.mul + local.set $z|30 + local.get $z|30 + local.get $z|30 + f64.mul + local.set $w|31 + f64.const -1.9839334836096632e-04 + local.get $z|30 + f64.const 2.718311493989822e-06 + f64.mul f64.add - else - local.get $x - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub + local.set $r|32 + local.get $z|30 + local.get $x|29 + f64.mul + local.set $s|33 + local.get $x|29 + local.get $s|33 + f64.const -0.16666666641626524 + local.get $z|30 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s|33 + local.get $w|31 + f64.mul + local.get $r|32 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.7 end - local.set $x|29 - local.get $x|29 - local.get $x|29 - f64.mul - local.set $z|30 - local.get $z|30 - local.get $z|30 - f64.mul - local.set $w|31 - f64.const -1.9839334836096632e-04 - local.get $z|30 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r|32 - local.get $z|30 - local.get $x|29 - f64.mul - local.set $s|33 - local.get $x|29 - local.get $s|33 - f64.const -0.16666666641626524 - local.get $z|30 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $s|33 - local.get $w|31 - f64.mul - local.get $r|32 - f64.mul - f64.add - f32.demote_f64 return end local.get $ux @@ -13357,113 +13635,116 @@ i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.1 end - local.get $x|34 - local.set $x|38 - local.get $u - local.set $u|39 - local.get $u|39 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $offset - local.get $offset - i32.const 63 - i32.and - i64.extend_i32_s - local.set $shift - i32.const 4608 - local.get $offset - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.add - local.set $tblPtr - local.get $tblPtr - i64.load $0 - local.set $b0 - local.get $tblPtr - i64.load $0 offset=8 - local.set $b1 - local.get $shift - i64.const 32 - i64.gt_u - if + block $~lib/math/pio2f_large_quot|inlined.1 (result i32) + local.get $x|34 + local.set $x|38 + local.get $u + local.set $u|39 + local.get $u|39 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $offset + local.get $offset + i32.const 63 + i32.and + i64.extend_i32_s + local.set $shift + i32.const 4608 + local.get $offset + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.add + local.set $tblPtr + local.get $tblPtr + i64.load $0 + local.set $b0 local.get $tblPtr - i64.load $0 offset=16 - local.set $b2 - local.get $b2 - i64.const 96 + i64.load $0 offset=8 + local.set $b1 local.get $shift - i64.sub - i64.shr_u - local.set $lo - local.get $lo + i64.const 32 + i64.gt_u + if + local.get $tblPtr + i64.load $0 offset=16 + local.set $b2 + local.get $b2 + i64.const 96 + local.get $shift + i64.sub + i64.shr_u + local.set $lo + local.get $lo + local.get $b1 + local.get $shift + i64.const 32 + i64.sub + i64.shl + i64.or + local.set $lo + else + local.get $b1 + i64.const 32 + local.get $shift + i64.sub + i64.shr_u + local.set $lo + end local.get $b1 + i64.const 64 local.get $shift - i64.const 32 i64.sub + i64.shr_u + local.get $b0 + local.get $shift i64.shl i64.or - local.set $lo - else - local.get $b1 + local.set $hi + local.get $u|39 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $mantissa + local.get $mantissa + local.get $hi + i64.mul + local.get $mantissa + local.get $lo + i64.mul i64.const 32 - local.get $shift - i64.sub i64.shr_u - local.set $lo + i64.add + local.set $product + local.get $product + i64.const 2 + i64.shl + local.set $r|50 + local.get $product + i64.const 62 + i64.shr_u + local.get $r|50 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $q|51 + f64.const 8.515303950216386e-20 + local.get $x|38 + f64.promote_f32 + f64.copysign + local.get $r|50 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $q|51 + br $~lib/math/pio2f_large_quot|inlined.1 end - local.get $b1 - i64.const 64 - local.get $shift - i64.sub - i64.shr_u - local.get $b0 - local.get $shift - i64.shl - i64.or - local.set $hi - local.get $u|39 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $mantissa - local.get $mantissa - local.get $hi - i64.mul - local.get $mantissa - local.get $lo - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $product - local.get $product - i64.const 2 - i64.shl - local.set $r|50 - local.get $product - i64.const 62 - i64.shr_u - local.get $r|50 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $q|51 - f64.const 8.515303950216386e-20 - local.get $x|38 - f64.promote_f32 - f64.copysign - local.get $r|50 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $q|51 local.set $q|52 i32.const 0 local.get $q|52 @@ -13471,6 +13752,7 @@ local.get $q|52 local.get $sign|36 select + br $~lib/math/rempio2f|inlined.1 end local.set $n global.get $~lib/math/rempio2f_y @@ -13479,76 +13761,82 @@ i32.const 1 i32.and if (result f32) - local.get $y - local.set $x|55 - local.get $x|55 - local.get $x|55 - f64.mul - local.set $z|56 - local.get $z|56 - local.get $z|56 - f64.mul - local.set $w|57 - f64.const -0.001388676377460993 - local.get $z|56 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $r|58 - f32.const 1 - f64.promote_f32 - local.get $z|56 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $w|57 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $w|57 - local.get $z|56 - f64.mul - local.get $r|58 - f64.mul - f64.add - f32.demote_f64 + block $~lib/math/cos_kernf|inlined.8 (result f32) + local.get $y + local.set $x|55 + local.get $x|55 + local.get $x|55 + f64.mul + local.set $z|56 + local.get $z|56 + local.get $z|56 + f64.mul + local.set $w|57 + f64.const -0.001388676377460993 + local.get $z|56 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $r|58 + f32.const 1 + f64.promote_f32 + local.get $z|56 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $w|57 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $w|57 + local.get $z|56 + f64.mul + local.get $r|58 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/cos_kernf|inlined.8 + end else - local.get $y - local.set $x|59 - local.get $x|59 - local.get $x|59 - f64.mul - local.set $z|60 - local.get $z|60 - local.get $z|60 - f64.mul - local.set $w|61 - f64.const -1.9839334836096632e-04 - local.get $z|60 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $r|62 - local.get $z|60 - local.get $x|59 - f64.mul - local.set $s|63 - local.get $x|59 - local.get $s|63 - f64.const -0.16666666641626524 - local.get $z|60 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $s|63 - local.get $w|61 - f64.mul - local.get $r|62 - f64.mul - f64.add - f32.demote_f64 + block $~lib/math/sin_kernf|inlined.8 (result f32) + local.get $y + local.set $x|59 + local.get $x|59 + local.get $x|59 + f64.mul + local.set $z|60 + local.get $z|60 + local.get $z|60 + f64.mul + local.set $w|61 + f64.const -1.9839334836096632e-04 + local.get $z|60 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $r|62 + local.get $z|60 + local.get $x|59 + f64.mul + local.set $s|63 + local.get $x|59 + local.get $s|63 + f64.const -0.16666666641626524 + local.get $z|60 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $s|63 + local.get $w|61 + f64.mul + local.get $r|62 + f64.mul + f64.add + f32.demote_f64 + br $~lib/math/sin_kernf|inlined.8 + end end local.set $t local.get $n @@ -13560,6 +13848,7 @@ else local.get $t end + return ) (func $std/math/test_sinf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -13568,6 +13857,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.sinh (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -13643,34 +13933,38 @@ f64.mul return end - local.get $a - local.set $x|6 - f64.const 2 - local.get $h - f64.mul - local.set $sign - i32.const 1023 - i32.const 2043 - i32.const 2 - i32.div_u - i32.add - i32.const 20 - i32.shl - i64.extend_i32_u - i64.const 32 - i64.shl - f64.reinterpret_i64 - local.set $scale - local.get $x|6 - f64.const 1416.0996898839683 - f64.sub - call $~lib/math/NativeMath.exp - local.get $sign - local.get $scale - f64.mul - f64.mul - local.get $scale - f64.mul + block $~lib/math/expo2|inlined.1 (result f64) + local.get $a + local.set $x|6 + f64.const 2 + local.get $h + f64.mul + local.set $sign + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_i32_u + i64.const 32 + i64.shl + f64.reinterpret_i64 + local.set $scale + local.get $x|6 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + local.get $sign + local.get $scale + f64.mul + f64.mul + local.get $scale + f64.mul + br $~lib/math/expo2|inlined.1 + end + return ) (func $std/math/test_sinh (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -13689,6 +13983,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.sinh (type $f32_=>_f32) (param $x f32) (result f32) (local $u i32) @@ -13758,31 +14053,35 @@ f32.mul return end - local.get $a - local.set $x|5 - f32.const 2 - local.get $h - f32.mul - local.set $sign - i32.const 127 - i32.const 235 - i32.const 1 - i32.shr_u - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - local.set $scale - local.get $x|5 - f32.const 162.88958740234375 - f32.sub - call $~lib/math/NativeMathf.exp - local.get $sign - local.get $scale - f32.mul - f32.mul - local.get $scale - f32.mul + block $~lib/math/expo2f|inlined.1 (result f32) + local.get $a + local.set $x|5 + f32.const 2 + local.get $h + f32.mul + local.set $sign + i32.const 127 + i32.const 235 + i32.const 1 + i32.shr_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $scale + local.get $x|5 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + local.get $sign + local.get $scale + f32.mul + f32.mul + local.get $scale + f32.mul + br $~lib/math/expo2f|inlined.1 + end + return ) (func $std/math/test_sinhf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -13791,13 +14090,17 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_sqrt (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) (local $x f64) - local.get $value - local.set $x - local.get $x - f64.sqrt + block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) + local.get $value + local.set $x + local.get $x + f64.sqrt + br $~lib/math/NativeMath.sqrt|inlined.0 + end local.get $expected local.get $error local.get $flags @@ -13812,17 +14115,22 @@ else i32.const 0 end + return ) (func $std/math/test_sqrtf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) (local $x f32) - local.get $value - local.set $x - local.get $x - f32.sqrt + block $~lib/math/NativeMathf.sqrt|inlined.0 (result f32) + local.get $value + local.set $x + local.get $x + f32.sqrt + br $~lib/math/NativeMathf.sqrt|inlined.0 + end local.get $expected local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/tan_kern (type $f64_f64_i32_=>_f64) (param $x f64) (param $y f64) (param $iy i32) (result f64) (local $z f64) @@ -14036,6 +14344,7 @@ f64.add f64.mul f64.add + return ) (func $~lib/math/NativeMath.tan (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -14346,6 +14655,7 @@ local.get $q|22 local.get $sign|6 select + br $~lib/math/rempio2|inlined.2 end local.set $n global.get $~lib/math/rempio2_y0 @@ -14358,6 +14668,7 @@ i32.shl i32.sub call $~lib/math/tan_kern + return ) (func $std/math/test_tan (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -14376,6 +14687,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.tan (type $f32_=>_f32) (param $x f32) (result f32) (local $ux i32) @@ -14471,225 +14783,234 @@ local.get $x return end - local.get $x - f64.promote_f32 - local.set $x|3 - i32.const 0 - local.set $odd - local.get $x|3 - local.get $x|3 - f64.mul - local.set $z - f64.const 0.002974357433599673 - local.get $z - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $r - f64.const 0.05338123784456704 - local.get $z - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $t - local.get $z - local.get $z - f64.mul - local.set $w - local.get $z - local.get $x|3 - f64.mul - local.set $s - f64.const 0.3333313950307914 - local.get $z - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $u - local.get $x|3 - local.get $s - local.get $u - f64.mul - f64.add - local.get $s - local.get $w - f64.mul - local.get $t - local.get $w - local.get $r - f64.mul - f64.add - f64.mul - f64.add - local.set $r - local.get $odd - if (result f64) - f32.const -1 + block $~lib/math/tan_kernf|inlined.0 (result f32) + local.get $x f64.promote_f32 - local.get $r - f64.div - else - local.get $r - end - f32.demote_f64 - return - end - i32.const 0 - i32.const 1 - i32.lt_s - drop - local.get $ux - i32.const 1081824209 - i32.le_u - if - local.get $ux - i32.const 1075235811 - i32.le_u - if - local.get $sign - if (result f64) - local.get $x - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - else - local.get $x - f64.promote_f32 - f64.const 1.5707963267948966 - f64.sub - end - local.set $x|11 - i32.const 1 - local.set $odd|12 - local.get $x|11 - local.get $x|11 + local.set $x|3 + i32.const 0 + local.set $odd + local.get $x|3 + local.get $x|3 f64.mul - local.set $z|13 + local.set $z f64.const 0.002974357433599673 - local.get $z|13 + local.get $z f64.const 0.009465647849436732 f64.mul f64.add - local.set $r|14 + local.set $r f64.const 0.05338123784456704 - local.get $z|13 + local.get $z f64.const 0.024528318116654728 f64.mul f64.add - local.set $t|15 - local.get $z|13 - local.get $z|13 + local.set $t + local.get $z + local.get $z f64.mul - local.set $w|16 - local.get $z|13 - local.get $x|11 + local.set $w + local.get $z + local.get $x|3 f64.mul - local.set $s|17 + local.set $s f64.const 0.3333313950307914 - local.get $z|13 + local.get $z f64.const 0.13339200271297674 f64.mul f64.add - local.set $u|18 - local.get $x|11 - local.get $s|17 - local.get $u|18 + local.set $u + local.get $x|3 + local.get $s + local.get $u f64.mul f64.add - local.get $s|17 - local.get $w|16 + local.get $s + local.get $w f64.mul - local.get $t|15 - local.get $w|16 - local.get $r|14 + local.get $t + local.get $w + local.get $r f64.mul f64.add f64.mul f64.add - local.set $r|14 - local.get $odd|12 + local.set $r + local.get $odd if (result f64) f32.const -1 f64.promote_f32 - local.get $r|14 + local.get $r f64.div else - local.get $r|14 + local.get $r end f32.demote_f64 + br $~lib/math/tan_kernf|inlined.0 + end + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $ux + i32.const 1081824209 + i32.le_u + if + local.get $ux + i32.const 1075235811 + i32.le_u + if + block $~lib/math/tan_kernf|inlined.1 (result f32) + local.get $sign + if (result f64) + local.get $x + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + else + local.get $x + f64.promote_f32 + f64.const 1.5707963267948966 + f64.sub + end + local.set $x|11 + i32.const 1 + local.set $odd|12 + local.get $x|11 + local.get $x|11 + f64.mul + local.set $z|13 + f64.const 0.002974357433599673 + local.get $z|13 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $r|14 + f64.const 0.05338123784456704 + local.get $z|13 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $t|15 + local.get $z|13 + local.get $z|13 + f64.mul + local.set $w|16 + local.get $z|13 + local.get $x|11 + f64.mul + local.set $s|17 + f64.const 0.3333313950307914 + local.get $z|13 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $u|18 + local.get $x|11 + local.get $s|17 + local.get $u|18 + f64.mul + f64.add + local.get $s|17 + local.get $w|16 + f64.mul + local.get $t|15 + local.get $w|16 + local.get $r|14 + f64.mul + f64.add + f64.mul + f64.add + local.set $r|14 + local.get $odd|12 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $r|14 + f64.div + else + local.get $r|14 + end + f32.demote_f64 + br $~lib/math/tan_kernf|inlined.1 + end return else - local.get $sign - if (result f64) - local.get $x - f64.promote_f32 - f64.const 3.141592653589793 + block $~lib/math/tan_kernf|inlined.2 (result f32) + local.get $sign + if (result f64) + local.get $x + f64.promote_f32 + f64.const 3.141592653589793 + f64.add + else + local.get $x + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub + end + local.set $x|19 + i32.const 0 + local.set $odd|20 + local.get $x|19 + local.get $x|19 + f64.mul + local.set $z|21 + f64.const 0.002974357433599673 + local.get $z|21 + f64.const 0.009465647849436732 + f64.mul f64.add - else - local.get $x - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub - end - local.set $x|19 - i32.const 0 - local.set $odd|20 - local.get $x|19 - local.get $x|19 - f64.mul - local.set $z|21 - f64.const 0.002974357433599673 - local.get $z|21 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $r|22 - f64.const 0.05338123784456704 - local.get $z|21 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $t|23 - local.get $z|21 - local.get $z|21 - f64.mul - local.set $w|24 - local.get $z|21 - local.get $x|19 - f64.mul - local.set $s|25 - f64.const 0.3333313950307914 - local.get $z|21 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $u|26 - local.get $x|19 - local.get $s|25 - local.get $u|26 - f64.mul - f64.add - local.get $s|25 - local.get $w|24 - f64.mul - local.get $t|23 - local.get $w|24 - local.get $r|22 - f64.mul - f64.add - f64.mul - f64.add - local.set $r|22 - local.get $odd|20 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $r|22 - f64.div - else + local.set $r|22 + f64.const 0.05338123784456704 + local.get $z|21 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $t|23 + local.get $z|21 + local.get $z|21 + f64.mul + local.set $w|24 + local.get $z|21 + local.get $x|19 + f64.mul + local.set $s|25 + f64.const 0.3333313950307914 + local.get $z|21 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $u|26 + local.get $x|19 + local.get $s|25 + local.get $u|26 + f64.mul + f64.add + local.get $s|25 + local.get $w|24 + f64.mul + local.get $t|23 + local.get $w|24 local.get $r|22 + f64.mul + f64.add + f64.mul + f64.add + local.set $r|22 + local.get $odd|20 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $r|22 + f64.div + else + local.get $r|22 + end + f32.demote_f64 + br $~lib/math/tan_kernf|inlined.2 end - f32.demote_f64 return end unreachable @@ -14702,150 +15023,156 @@ i32.const 1085271519 i32.le_u if - local.get $sign - if (result f64) - local.get $x - f64.promote_f32 - f64.const 4.71238898038469 + block $~lib/math/tan_kernf|inlined.3 (result f32) + local.get $sign + if (result f64) + local.get $x + f64.promote_f32 + f64.const 4.71238898038469 + f64.add + else + local.get $x + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + end + local.set $x|27 + i32.const 1 + local.set $odd|28 + local.get $x|27 + local.get $x|27 + f64.mul + local.set $z|29 + f64.const 0.002974357433599673 + local.get $z|29 + f64.const 0.009465647849436732 + f64.mul f64.add - else - local.get $x - f64.promote_f32 - f64.const 4.71238898038469 - f64.sub - end - local.set $x|27 - i32.const 1 - local.set $odd|28 - local.get $x|27 - local.get $x|27 - f64.mul - local.set $z|29 - f64.const 0.002974357433599673 - local.get $z|29 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $r|30 - f64.const 0.05338123784456704 - local.get $z|29 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $t|31 - local.get $z|29 - local.get $z|29 - f64.mul - local.set $w|32 - local.get $z|29 - local.get $x|27 - f64.mul - local.set $s|33 - f64.const 0.3333313950307914 - local.get $z|29 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $u|34 - local.get $x|27 - local.get $s|33 - local.get $u|34 - f64.mul - f64.add - local.get $s|33 - local.get $w|32 - f64.mul - local.get $t|31 - local.get $w|32 - local.get $r|30 - f64.mul - f64.add - f64.mul - f64.add - local.set $r|30 - local.get $odd|28 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $r|30 - f64.div - else + local.set $r|30 + f64.const 0.05338123784456704 + local.get $z|29 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $t|31 + local.get $z|29 + local.get $z|29 + f64.mul + local.set $w|32 + local.get $z|29 + local.get $x|27 + f64.mul + local.set $s|33 + f64.const 0.3333313950307914 + local.get $z|29 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $u|34 + local.get $x|27 + local.get $s|33 + local.get $u|34 + f64.mul + f64.add + local.get $s|33 + local.get $w|32 + f64.mul + local.get $t|31 + local.get $w|32 local.get $r|30 + f64.mul + f64.add + f64.mul + f64.add + local.set $r|30 + local.get $odd|28 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $r|30 + f64.div + else + local.get $r|30 + end + f32.demote_f64 + br $~lib/math/tan_kernf|inlined.3 end - f32.demote_f64 return else - local.get $sign - if (result f64) - local.get $x - f64.promote_f32 - f64.const 6.283185307179586 + block $~lib/math/tan_kernf|inlined.4 (result f32) + local.get $sign + if (result f64) + local.get $x + f64.promote_f32 + f64.const 6.283185307179586 + f64.add + else + local.get $x + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub + end + local.set $x|35 + i32.const 0 + local.set $odd|36 + local.get $x|35 + local.get $x|35 + f64.mul + local.set $z|37 + f64.const 0.002974357433599673 + local.get $z|37 + f64.const 0.009465647849436732 + f64.mul f64.add - else - local.get $x - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub - end - local.set $x|35 - i32.const 0 - local.set $odd|36 - local.get $x|35 - local.get $x|35 - f64.mul - local.set $z|37 - f64.const 0.002974357433599673 - local.get $z|37 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $r|38 - f64.const 0.05338123784456704 - local.get $z|37 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $t|39 - local.get $z|37 - local.get $z|37 - f64.mul - local.set $w|40 - local.get $z|37 - local.get $x|35 - f64.mul - local.set $s|41 - f64.const 0.3333313950307914 - local.get $z|37 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $u|42 - local.get $x|35 - local.get $s|41 - local.get $u|42 - f64.mul - f64.add - local.get $s|41 - local.get $w|40 - f64.mul - local.get $t|39 - local.get $w|40 - local.get $r|38 - f64.mul - f64.add - f64.mul - f64.add - local.set $r|38 - local.get $odd|36 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $r|38 - f64.div - else + local.set $r|38 + f64.const 0.05338123784456704 + local.get $z|37 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $t|39 + local.get $z|37 + local.get $z|37 + f64.mul + local.set $w|40 + local.get $z|37 + local.get $x|35 + f64.mul + local.set $s|41 + f64.const 0.3333313950307914 + local.get $z|37 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $u|42 + local.get $x|35 + local.get $s|41 + local.get $u|42 + f64.mul + f64.add + local.get $s|41 + local.get $w|40 + f64.mul + local.get $t|39 + local.get $w|40 local.get $r|38 + f64.mul + f64.add + f64.mul + f64.add + local.set $r|38 + local.get $odd|36 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $r|38 + f64.div + else + local.get $r|38 + end + f32.demote_f64 + br $~lib/math/tan_kernf|inlined.4 end - f32.demote_f64 return end unreachable @@ -14891,113 +15218,116 @@ i32.trunc_sat_f64_s br $~lib/math/rempio2f|inlined.2 end - local.get $x|43 - local.set $x|47 - local.get $u|44 - local.set $u|48 - local.get $u|48 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $offset - local.get $offset - i32.const 63 - i32.and - i64.extend_i32_s - local.set $shift - i32.const 4608 - local.get $offset - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.add - local.set $tblPtr - local.get $tblPtr - i64.load $0 - local.set $b0 - local.get $tblPtr - i64.load $0 offset=8 - local.set $b1 - local.get $shift - i64.const 32 - i64.gt_u - if + block $~lib/math/pio2f_large_quot|inlined.2 (result i32) + local.get $x|43 + local.set $x|47 + local.get $u|44 + local.set $u|48 + local.get $u|48 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $offset + local.get $offset + i32.const 63 + i32.and + i64.extend_i32_s + local.set $shift + i32.const 4608 + local.get $offset + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.add + local.set $tblPtr + local.get $tblPtr + i64.load $0 + local.set $b0 local.get $tblPtr - i64.load $0 offset=16 - local.set $b2 - local.get $b2 - i64.const 96 + i64.load $0 offset=8 + local.set $b1 local.get $shift - i64.sub - i64.shr_u - local.set $lo - local.get $lo + i64.const 32 + i64.gt_u + if + local.get $tblPtr + i64.load $0 offset=16 + local.set $b2 + local.get $b2 + i64.const 96 + local.get $shift + i64.sub + i64.shr_u + local.set $lo + local.get $lo + local.get $b1 + local.get $shift + i64.const 32 + i64.sub + i64.shl + i64.or + local.set $lo + else + local.get $b1 + i64.const 32 + local.get $shift + i64.sub + i64.shr_u + local.set $lo + end local.get $b1 + i64.const 64 local.get $shift - i64.const 32 i64.sub + i64.shr_u + local.get $b0 + local.get $shift i64.shl i64.or - local.set $lo - else - local.get $b1 + local.set $hi + local.get $u|48 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $mantissa + local.get $mantissa + local.get $hi + i64.mul + local.get $mantissa + local.get $lo + i64.mul i64.const 32 - local.get $shift - i64.sub i64.shr_u - local.set $lo + i64.add + local.set $product + local.get $product + i64.const 2 + i64.shl + local.set $r|59 + local.get $product + i64.const 62 + i64.shr_u + local.get $r|59 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $q|60 + f64.const 8.515303950216386e-20 + local.get $x|47 + f64.promote_f32 + f64.copysign + local.get $r|59 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $q|60 + br $~lib/math/pio2f_large_quot|inlined.2 end - local.get $b1 - i64.const 64 - local.get $shift - i64.sub - i64.shr_u - local.get $b0 - local.get $shift - i64.shl - i64.or - local.set $hi - local.get $u|48 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $mantissa - local.get $mantissa - local.get $hi - i64.mul - local.get $mantissa - local.get $lo - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $product - local.get $product - i64.const 2 - i64.shl - local.set $r|59 - local.get $product - i64.const 62 - i64.shr_u - local.get $r|59 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $q|60 - f64.const 8.515303950216386e-20 - local.get $x|47 - f64.promote_f32 - f64.copysign - local.get $r|59 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $q|60 local.set $q|61 i32.const 0 local.get $q|61 @@ -15005,72 +15335,77 @@ local.get $q|61 local.get $sign|45 select + br $~lib/math/rempio2f|inlined.2 end local.set $n global.get $~lib/math/rempio2f_y local.set $y - local.get $y - local.set $x|64 - local.get $n - i32.const 1 - i32.and - local.set $odd|65 - local.get $x|64 - local.get $x|64 - f64.mul - local.set $z|66 - f64.const 0.002974357433599673 - local.get $z|66 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $r|67 - f64.const 0.05338123784456704 - local.get $z|66 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $t|68 - local.get $z|66 - local.get $z|66 - f64.mul - local.set $w|69 - local.get $z|66 - local.get $x|64 - f64.mul - local.set $s|70 - f64.const 0.3333313950307914 - local.get $z|66 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $u|71 - local.get $x|64 - local.get $s|70 - local.get $u|71 - f64.mul - f64.add - local.get $s|70 - local.get $w|69 - f64.mul - local.get $t|68 - local.get $w|69 - local.get $r|67 - f64.mul - f64.add - f64.mul - f64.add - local.set $r|67 - local.get $odd|65 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $r|67 - f64.div - else + block $~lib/math/tan_kernf|inlined.5 (result f32) + local.get $y + local.set $x|64 + local.get $n + i32.const 1 + i32.and + local.set $odd|65 + local.get $x|64 + local.get $x|64 + f64.mul + local.set $z|66 + f64.const 0.002974357433599673 + local.get $z|66 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $r|67 + f64.const 0.05338123784456704 + local.get $z|66 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $t|68 + local.get $z|66 + local.get $z|66 + f64.mul + local.set $w|69 + local.get $z|66 + local.get $x|64 + f64.mul + local.set $s|70 + f64.const 0.3333313950307914 + local.get $z|66 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $u|71 + local.get $x|64 + local.get $s|70 + local.get $u|71 + f64.mul + f64.add + local.get $s|70 + local.get $w|69 + f64.mul + local.get $t|68 + local.get $w|69 local.get $r|67 + f64.mul + f64.add + f64.mul + f64.add + local.set $r|67 + local.get $odd|65 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $r|67 + f64.div + else + local.get $r|67 + end + f32.demote_f64 + br $~lib/math/tan_kernf|inlined.5 end - f32.demote_f64 + return ) (func $std/math/test_tanf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -15079,6 +15414,7 @@ local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.tanh (type $f64_=>_f64) (param $x f64) (result f64) (local $u i64) @@ -15171,6 +15507,7 @@ local.get $t local.get $x f64.copysign + return ) (func $std/math/test_tanh (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) local.get $value @@ -15189,6 +15526,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.tanh (type $f32_=>_f32) (param $x f32) (result f32) (local $u i32) @@ -15275,6 +15613,7 @@ local.get $t local.get $x f32.copysign + return ) (func $std/math/test_tanhf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) local.get $value @@ -15283,13 +15622,17 @@ local.get $error local.get $flags call $std/math/check + return ) (func $std/math/test_trunc (type $f64_f64_f64_i32_=>_i32) (param $value f64) (param $expected f64) (param $error f64) (param $flags i32) (result i32) (local $x f64) - local.get $value - local.set $x - local.get $x - f64.trunc + block $~lib/math/NativeMath.trunc|inlined.0 (result f64) + local.get $value + local.set $x + local.get $x + f64.trunc + br $~lib/math/NativeMath.trunc|inlined.0 + end local.get $expected local.get $error local.get $flags @@ -15304,17 +15647,22 @@ else i32.const 0 end + return ) (func $std/math/test_truncf (type $f32_f32_f32_i32_=>_i32) (param $value f32) (param $expected f32) (param $error f32) (param $flags i32) (result i32) (local $x f32) - local.get $value - local.set $x - local.get $x - f32.trunc + block $~lib/math/NativeMathf.trunc|inlined.0 (result f32) + local.get $value + local.set $x + local.get $x + f32.trunc + br $~lib/math/NativeMathf.trunc|inlined.0 + end local.get $expected local.get $error local.get $flags call $std/math/check + return ) (func $~lib/math/NativeMath.sincos (type $f64_=>_none) (param $x f64) (local $u i64) @@ -15478,67 +15826,70 @@ unreachable end global.set $~lib/math/NativeMath.sincos_sin - local.get $x - local.set $x|11 - f64.const 0 - local.set $y|12 - local.get $x|11 - local.get $x|11 - f64.mul - local.set $z|13 - local.get $z|13 - local.get $z|13 - f64.mul - local.set $w|14 - local.get $z|13 - f64.const 0.0416666666666666 - local.get $z|13 - f64.const -0.001388888888887411 - local.get $z|13 - f64.const 2.480158728947673e-05 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.get $w|14 - local.get $w|14 - f64.mul - f64.const -2.7557314351390663e-07 - local.get $z|13 - f64.const 2.087572321298175e-09 - local.get $z|13 - f64.const -1.1359647557788195e-11 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.set $r|15 - f64.const 0.5 - local.get $z|13 - f64.mul - local.set $hz - f64.const 1 - local.get $hz - f64.sub - local.set $w|14 - local.get $w|14 - f64.const 1 - local.get $w|14 - f64.sub - local.get $hz - f64.sub - local.get $z|13 - local.get $r|15 - f64.mul - local.get $x|11 - local.get $y|12 - f64.mul - f64.sub - f64.add - f64.add + block $~lib/math/cos_kern|inlined.3 (result f64) + local.get $x + local.set $x|11 + f64.const 0 + local.set $y|12 + local.get $x|11 + local.get $x|11 + f64.mul + local.set $z|13 + local.get $z|13 + local.get $z|13 + f64.mul + local.set $w|14 + local.get $z|13 + f64.const 0.0416666666666666 + local.get $z|13 + f64.const -0.001388888888887411 + local.get $z|13 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $w|14 + local.get $w|14 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $z|13 + f64.const 2.087572321298175e-09 + local.get $z|13 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $r|15 + f64.const 0.5 + local.get $z|13 + f64.mul + local.set $hz + f64.const 1 + local.get $hz + f64.sub + local.set $w|14 + local.get $w|14 + f64.const 1 + local.get $w|14 + f64.sub + local.get $hz + f64.sub + local.get $z|13 + local.get $r|15 + f64.mul + local.get $x|11 + local.get $y|12 + f64.mul + f64.sub + f64.add + f64.add + br $~lib/math/cos_kern|inlined.3 + end global.set $~lib/math/NativeMath.sincos_cos return end @@ -15799,6 +16150,7 @@ local.get $q|36 local.get $sign|20 select + br $~lib/math/rempio2|inlined.3 end local.set $n global.get $~lib/math/rempio2_y0 @@ -15880,67 +16232,70 @@ unreachable end local.set $s - local.get $y0|38 - local.set $x|48 - local.get $y1|39 - local.set $y|49 - local.get $x|48 - local.get $x|48 - f64.mul - local.set $z|50 - local.get $z|50 - local.get $z|50 - f64.mul - local.set $w|51 - local.get $z|50 - f64.const 0.0416666666666666 - local.get $z|50 - f64.const -0.001388888888887411 - local.get $z|50 - f64.const 2.480158728947673e-05 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.get $w|51 - local.get $w|51 - f64.mul - f64.const -2.7557314351390663e-07 - local.get $z|50 - f64.const 2.087572321298175e-09 - local.get $z|50 - f64.const -1.1359647557788195e-11 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.set $r|52 - f64.const 0.5 - local.get $z|50 - f64.mul - local.set $hz|53 - f64.const 1 - local.get $hz|53 - f64.sub - local.set $w|51 - local.get $w|51 - f64.const 1 - local.get $w|51 - f64.sub - local.get $hz|53 - f64.sub - local.get $z|50 - local.get $r|52 - f64.mul - local.get $x|48 - local.get $y|49 - f64.mul - f64.sub - f64.add - f64.add + block $~lib/math/cos_kern|inlined.4 (result f64) + local.get $y0|38 + local.set $x|48 + local.get $y1|39 + local.set $y|49 + local.get $x|48 + local.get $x|48 + f64.mul + local.set $z|50 + local.get $z|50 + local.get $z|50 + f64.mul + local.set $w|51 + local.get $z|50 + f64.const 0.0416666666666666 + local.get $z|50 + f64.const -0.001388888888887411 + local.get $z|50 + f64.const 2.480158728947673e-05 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.get $w|51 + local.get $w|51 + f64.mul + f64.const -2.7557314351390663e-07 + local.get $z|50 + f64.const 2.087572321298175e-09 + local.get $z|50 + f64.const -1.1359647557788195e-11 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.set $r|52 + f64.const 0.5 + local.get $z|50 + f64.mul + local.set $hz|53 + f64.const 1 + local.get $hz|53 + f64.sub + local.set $w|51 + local.get $w|51 + f64.const 1 + local.get $w|51 + f64.sub + local.get $hz|53 + f64.sub + local.get $z|50 + local.get $r|52 + f64.mul + local.get $x|48 + local.get $y|49 + f64.mul + f64.sub + f64.add + f64.add + br $~lib/math/cos_kern|inlined.4 + end local.set $c local.get $s local.set $sin @@ -16009,6 +16364,7 @@ else i32.const 0 end + return ) (func $~lib/math/dtoi32 (type $f64_=>_i32) (param $x f64) (result i32) (local $result i32) @@ -16110,6 +16466,7 @@ call $~lib/math/dtoi32 i32.mul f64.convert_i32_s + return ) (func $~lib/math/NativeMath.clz32 (type $f64_=>_f64) (param $x f64) (result f64) local.get $x @@ -16126,12 +16483,12 @@ call $~lib/math/dtoi32 i32.clz f64.convert_i32_s + return ) (func $~lib/math/ipow64 (type $i64_i64_=>_i64) (param $x i64) (param $e i64) (result i64) (local $out i64) (local $log i32) (local $4 i32) - (local $5 i32) i64.const 1 local.set $out i32.const 0 @@ -16364,8 +16721,6 @@ local.get $e i64.const 0 i64.ne - local.set $5 - local.get $5 if local.get $e i64.const 1 @@ -16390,12 +16745,12 @@ end end local.get $out + return ) (func $~lib/math/ipow32 (type $i32_i32_=>_i32) (param $x i32) (param $e i32) (result i32) (local $out i32) (local $log i32) (local $4 i32) - (local $5 i32) i32.const 1 local.set $out i32.const 0 @@ -16586,8 +16941,6 @@ end loop $while-continue|1 local.get $e - local.set $5 - local.get $5 if local.get $e i32.const 1 @@ -16610,6 +16963,7 @@ end end local.get $out + return ) (func $start:std/math (type $none_=>_none) (local $0 f64) @@ -16618,28 +16972,26 @@ (local $3 f64) (local $4 f64) (local $i i32) - (local $6 i32) (local $r f64) (local $value i64) - (local $i|9 i32) - (local $10 i32) - (local $r|11 f32) + (local $i|8 i32) + (local $r|9 f32) (local $x f64) + (local $x|11 f64) + (local $x|12 f64) (local $x|13 f64) (local $x|14 f64) (local $x|15 f64) (local $x|16 f64) (local $x|17 f64) - (local $x|18 f64) - (local $x|19 f64) + (local $x|18 f32) + (local $x|19 f32) (local $x|20 f32) (local $x|21 f32) (local $x|22 f32) (local $x|23 f32) (local $x|24 f32) (local $x|25 f32) - (local $x|26 f32) - (local $x|27 f32) global.get $~lib/math/NativeMath.E global.get $~lib/math/NativeMath.E f64.eq @@ -47569,8 +47921,6 @@ f64.convert_i32_s f64.const 1e6 f64.lt - local.set $6 - local.get $6 if call $~lib/math/NativeMath.random local.set $r @@ -47606,22 +47956,20 @@ local.get $value call $~lib/math/NativeMath.seedRandom i32.const 0 - local.set $i|9 + local.set $i|8 loop $for-loop|1 - local.get $i|9 + local.get $i|8 f64.convert_i32_s f64.const 1e6 f64.lt - local.set $10 - local.get $10 if call $~lib/math/NativeMathf.random - local.set $r|11 - local.get $r|11 + local.set $r|9 + local.get $r|9 f32.const 0 f32.ge if (result i32) - local.get $r|11 + local.get $r|9 f32.const 1 f32.lt else @@ -47636,10 +47984,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|9 + local.get $i|8 i32.const 1 i32.add - local.set $i|9 + local.set $i|8 br $for-loop|1 end end @@ -48722,197 +49070,245 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - local.set $x - local.get $x - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.2 (result i32) + f64.const 0 + local.set $x + local.get $x + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.2 + end i32.const 0 i32.ne i32.const 0 i32.eq drop - f64.const -0 - local.set $x|13 - local.get $x|13 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.3 (result i32) + f64.const -0 + local.set $x|11 + local.get $x|11 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.3 + end i32.const 0 i32.ne i32.const 1 i32.eq drop - f64.const 1 - local.set $x|14 - local.get $x|14 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.4 (result i32) + f64.const 1 + local.set $x|12 + local.get $x|12 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.4 + end i32.const 0 i32.ne i32.const 0 i32.eq drop - f64.const -1 - local.set $x|15 - local.get $x|15 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.5 (result i32) + f64.const -1 + local.set $x|13 + local.get $x|13 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.5 + end i32.const 0 i32.ne i32.const 1 i32.eq drop - f64.const nan:0x8000000000000 - local.set $x|16 - local.get $x|16 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.6 (result i32) + f64.const nan:0x8000000000000 + local.set $x|14 + local.get $x|14 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.6 + end i32.const 0 i32.ne i32.const 0 i32.eq drop - f64.const nan:0x8000000000000 - f64.neg - local.set $x|17 - local.get $x|17 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.7 (result i32) + f64.const nan:0x8000000000000 + f64.neg + local.set $x|15 + local.get $x|15 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.7 + end i32.const 0 i32.ne i32.const 1 i32.eq drop - f64.const inf - local.set $x|18 - local.get $x|18 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.8 (result i32) + f64.const inf + local.set $x|16 + local.get $x|16 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.8 + end i32.const 0 i32.ne i32.const 0 i32.eq drop - f64.const inf - f64.neg - local.set $x|19 - local.get $x|19 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne + block $~lib/math/NativeMath.signbit|inlined.9 (result i32) + f64.const inf + f64.neg + local.set $x|17 + local.get $x|17 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.9 + end i32.const 0 i32.ne i32.const 1 i32.eq drop - f32.const 0 - local.set $x|20 - local.get $x|20 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.2 (result i32) + f32.const 0 + local.set $x|18 + local.get $x|18 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.2 + end i32.const 0 i32.ne i32.const 0 i32.eq drop - f32.const -0 - local.set $x|21 - local.get $x|21 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.3 (result i32) + f32.const -0 + local.set $x|19 + local.get $x|19 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.3 + end i32.const 0 i32.ne i32.const 1 i32.eq drop - f32.const 1 - local.set $x|22 - local.get $x|22 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.4 (result i32) + f32.const 1 + local.set $x|20 + local.get $x|20 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.4 + end i32.const 0 i32.ne i32.const 0 i32.eq drop - f32.const -1 - local.set $x|23 - local.get $x|23 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.5 (result i32) + f32.const -1 + local.set $x|21 + local.get $x|21 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.5 + end i32.const 0 i32.ne i32.const 1 i32.eq drop - f32.const nan:0x400000 - local.set $x|24 - local.get $x|24 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.6 (result i32) + f32.const nan:0x400000 + local.set $x|22 + local.get $x|22 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.6 + end i32.const 0 i32.ne i32.const 0 i32.eq drop - f32.const nan:0x400000 - f32.neg - local.set $x|25 - local.get $x|25 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.7 (result i32) + f32.const nan:0x400000 + f32.neg + local.set $x|23 + local.get $x|23 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.7 + end i32.const 0 i32.ne i32.const 1 i32.eq drop - f32.const inf - local.set $x|26 - local.get $x|26 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.8 (result i32) + f32.const inf + local.set $x|24 + local.get $x|24 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.8 + end i32.const 0 i32.ne i32.const 0 i32.eq drop - f32.const inf - f32.neg - local.set $x|27 - local.get $x|27 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u + block $~lib/math/NativeMathf.signbit|inlined.9 (result i32) + f32.const inf + f32.neg + local.set $x|25 + local.get $x|25 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + br $~lib/math/NativeMathf.signbit|inlined.9 + end i32.const 0 i32.ne i32.const 1 diff --git a/tests/compiler/std/mod.debug.wat b/tests/compiler/std/mod.debug.wat index cd3f566d3b..1b005c70ab 100644 --- a/tests/compiler/std/mod.debug.wat +++ b/tests/compiler/std/mod.debug.wat @@ -29,7 +29,6 @@ (local $uy1 i64) (local $m f64) (local $ux1 i64) - (local $10 i32) (local $shift i64) local.get $y f64.abs @@ -181,8 +180,6 @@ local.get $ex local.get $ey i64.gt_s - local.set $10 - local.get $10 if local.get $ux local.get $uy @@ -276,6 +273,7 @@ i64.shl i64.or f64.reinterpret_i64 + return ) (func $std/mod/check (type $f64_f64_=>_i32) (param $actual f64) (param $expected f64) (result i32) local.get $expected @@ -304,6 +302,7 @@ local.get $actual local.get $expected f64.eq + return ) (func $std/mod/test_fmod (type $f64_f64_f64_=>_i32) (param $left f64) (param $right f64) (param $expected f64) (result i32) local.get $left @@ -320,6 +319,7 @@ else i32.const 0 end + return ) (func $~lib/math/NativeMathf.mod (type $f32_f32_=>_f32) (param $x f32) (param $y f32) (result f32) (local $ux i32) @@ -330,7 +330,6 @@ (local $uy1 i32) (local $m f32) (local $ux1 i32) - (local $10 i32) (local $shift i32) local.get $y f32.abs @@ -478,8 +477,6 @@ local.get $ex local.get $ey i32.gt_s - local.set $10 - local.get $10 if local.get $ux local.get $uy @@ -571,6 +568,7 @@ local.get $sm i32.or f32.reinterpret_i32 + return ) (func $std/mod/check (type $f32_f32_=>_i32) (param $actual f32) (param $expected f32) (result i32) local.get $expected @@ -599,6 +597,7 @@ local.get $actual local.get $expected f32.eq + return ) (func $std/mod/test_fmodf (type $f32_f32_f32_=>_i32) (param $left f32) (param $right f32) (param $expected f32) (result i32) local.get $left @@ -606,6 +605,7 @@ call $~lib/math/NativeMathf.mod local.get $expected call $std/mod/check + return ) (func $start:std/mod (type $none_=>_none) f64.const 3 diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 4ce69cacf9..e3f50d3c76 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -77,6 +77,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -89,17 +90,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -111,8 +113,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -255,6 +255,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -274,6 +275,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -359,15 +361,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -394,6 +393,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -569,22 +569,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -609,16 +612,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -714,18 +720,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -749,18 +758,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -770,12 +782,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -923,22 +938,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -983,16 +1001,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1047,10 +1068,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1166,6 +1190,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1175,15 +1200,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1244,17 +1267,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1266,22 +1287,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1354,6 +1373,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1414,8 +1434,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1460,8 +1478,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1511,8 +1527,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1594,6 +1608,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1672,6 +1687,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1687,6 +1703,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1777,16 +1794,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1819,16 +1839,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1842,46 +1865,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1918,10 +1948,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2041,30 +2074,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2135,6 +2174,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2147,6 +2187,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2209,6 +2250,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $start:std/new (type $none_=>_none) memory.size $0 diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index ccb2c1fc30..0192037e95 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) @@ -84,6 +84,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34232 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1440 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1444 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1342,146 +1474,18 @@ global.set $std/new/aClass ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34232 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1440 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1444 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/std/object.debug.wat b/tests/compiler/std/object.debug.wat index fe17988670..8c0b93bcc5 100644 --- a/tests/compiler/std/object.debug.wat +++ b/tests/compiler/std/object.debug.wat @@ -78,6 +78,7 @@ local.get $x local.get $y i32.eq + return ) (func $~lib/object/Object.is (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32) i32.const 0 @@ -89,6 +90,7 @@ i32.const 0 i32.ne i32.eq + return ) (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -101,12 +103,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -177,8 +179,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -207,6 +207,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -249,6 +250,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/object/Object.is<~lib/string/String> (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32) i32.const 0 @@ -256,6 +258,7 @@ local.get $x local.get $y call $~lib/string/String.__eq + return ) (func $~lib/object/Object.is<~lib/string/String|null> (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32) i32.const 0 @@ -263,6 +266,7 @@ local.get $x local.get $y call $~lib/string/String.__eq + return ) (func $~lib/rt/stub/maybeGrowMemory (type $i32_=>_none) (param $newOffset i32) (local $pagesBefore i32) @@ -352,19 +356,22 @@ i32.const 4 i32.add local.set $ptr - local.get $size - local.set $size|3 - local.get $size|3 - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - i32.const 4 - i32.sub + block $~lib/rt/stub/computeSize|inlined.0 (result i32) + local.get $size + local.set $size|3 + local.get $size|3 + i32.const 4 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + i32.const 4 + i32.sub + br $~lib/rt/stub/computeSize|inlined.0 + end local.set $payloadSize local.get $ptr local.get $payloadSize @@ -374,6 +381,7 @@ local.get $payloadSize call $~lib/rt/common/BLOCK#set:mmInfo local.get $ptr + return ) (func $~lib/rt/common/OBJECT#set:gcInfo (type $i32_i32_=>_none) (param $this i32) (param $gcInfo i32) local.get $this @@ -433,6 +441,7 @@ local.get $ptr i32.const 16 i32.add + return ) (func $std/object/Implicit#constructor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index 09c5c63d7d..0411db7701 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -132,6 +132,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -144,17 +145,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -166,8 +168,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -310,6 +310,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -329,6 +330,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -414,15 +416,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -449,6 +448,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -624,22 +624,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -664,16 +667,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -769,18 +775,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -804,18 +813,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -825,12 +837,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -978,22 +993,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1038,16 +1056,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1102,10 +1123,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1221,6 +1245,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1230,15 +1255,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1299,17 +1322,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1321,22 +1342,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1409,6 +1428,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1469,8 +1489,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1515,8 +1533,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1566,8 +1582,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1649,6 +1663,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1727,6 +1742,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1742,6 +1758,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1832,16 +1849,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1874,16 +1894,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1897,46 +1920,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1973,10 +2003,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2096,30 +2129,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2190,6 +2229,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2202,6 +2242,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2264,6 +2305,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $std/operator-overloading/Tester#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this @@ -2296,6 +2338,7 @@ call $std/operator-overloading/Tester#get:y i32.add call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.sub (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 @@ -2310,6 +2353,7 @@ call $std/operator-overloading/Tester#get:y i32.sub call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.mul (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 @@ -2324,6 +2368,7 @@ call $std/operator-overloading/Tester#get:y i32.mul call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.div (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 @@ -2338,6 +2383,7 @@ call $std/operator-overloading/Tester#get:y i32.div_s call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.mod (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 @@ -2352,12 +2398,12 @@ call $std/operator-overloading/Tester#get:y i32.rem_s call $std/operator-overloading/Tester#constructor + return ) (func $~lib/math/ipow32 (type $i32_i32_=>_i32) (param $x i32) (param $e i32) (result i32) (local $out i32) (local $log i32) (local $4 i32) - (local $5 i32) i32.const 1 local.set $out i32.const 0 @@ -2548,8 +2594,6 @@ end loop $while-continue|1 local.get $e - local.set $5 - local.get $5 if local.get $e i32.const 1 @@ -2572,6 +2616,7 @@ end end local.get $out + return ) (func $std/operator-overloading/Tester.pow (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 @@ -2586,6 +2631,7 @@ call $std/operator-overloading/Tester#get:y call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.and (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 @@ -2600,6 +2646,7 @@ call $std/operator-overloading/Tester#get:y i32.and call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.or (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 @@ -2614,6 +2661,7 @@ call $std/operator-overloading/Tester#get:y i32.or call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.xor (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) i32.const 0 @@ -2628,6 +2676,7 @@ call $std/operator-overloading/Tester#get:y i32.xor call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.equals (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -2644,6 +2693,7 @@ else i32.const 0 end + return ) (func $std/operator-overloading/Tester.notEquals (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -2660,6 +2710,7 @@ else i32.const 0 end + return ) (func $std/operator-overloading/Tester.greater (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -2676,6 +2727,7 @@ else i32.const 0 end + return ) (func $std/operator-overloading/Tester.greaterEquals (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -2692,6 +2744,7 @@ else i32.const 0 end + return ) (func $std/operator-overloading/Tester.less (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -2708,6 +2761,7 @@ else i32.const 0 end + return ) (func $std/operator-overloading/Tester.lessEquals (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -2724,6 +2778,7 @@ else i32.const 0 end + return ) (func $std/operator-overloading/Tester.shr (type $i32_i32_=>_i32) (param $value i32) (param $shift i32) (result i32) i32.const 0 @@ -2736,6 +2791,7 @@ local.get $shift i32.shr_s call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.shu (type $i32_i32_=>_i32) (param $value i32) (param $shift i32) (result i32) i32.const 0 @@ -2748,6 +2804,7 @@ local.get $shift i32.shr_u call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.shl (type $i32_i32_=>_i32) (param $value i32) (param $shift i32) (result i32) i32.const 0 @@ -2760,6 +2817,7 @@ local.get $shift i32.shl call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.pos (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 @@ -2768,6 +2826,7 @@ local.get $value call $std/operator-overloading/Tester#get:y call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.neg (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 @@ -2780,6 +2839,7 @@ call $std/operator-overloading/Tester#get:y i32.sub call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.not (type $i32_=>_i32) (param $value i32) (result i32) i32.const 0 @@ -2792,6 +2852,7 @@ i32.const -1 i32.xor call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester.excl (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -2804,6 +2865,7 @@ else i32.const 0 end + return ) (func $std/operator-overloading/Tester#inc (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2819,6 +2881,7 @@ i32.add call $std/operator-overloading/Tester#set:y local.get $this + return ) (func $std/operator-overloading/Tester#dec (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2834,6 +2897,7 @@ i32.sub call $std/operator-overloading/Tester#set:y local.get $this + return ) (func $std/operator-overloading/Tester#postInc (type $i32_=>_i32) (param $this i32) (result i32) i32.const 0 @@ -2846,6 +2910,7 @@ i32.const 1 i32.add call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/Tester#postDec (type $i32_=>_i32) (param $this i32) (result i32) i32.const 0 @@ -2858,6 +2923,7 @@ i32.const 1 i32.sub call $std/operator-overloading/Tester#constructor + return ) (func $std/operator-overloading/TesterInlineStatic#set:x (type $i32_i32_=>_none) (param $this i32) (param $x i32) local.get $this @@ -2916,12 +2982,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2992,8 +3058,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -3022,6 +3086,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -3064,6 +3129,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $std/operator-overloading/TesterElementAccess#get:x (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3635,6 +3701,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $start:std/operator-overloading (type $none_=>_none) (local $0 i32) @@ -5038,51 +5105,57 @@ i32.const 2 call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 - global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/ais1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store $0 - local.get $9 - local.tee $3 - i32.store $0 offset=16 - i32.const 0 - local.get $3 - call $std/operator-overloading/TesterInlineStatic#get:x - i32.const 1 - i32.add - local.get $3 - call $std/operator-overloading/TesterInlineStatic#get:y - i32.const 1 - i32.add - call $std/operator-overloading/TesterInlineStatic#constructor + block $std/operator-overloading/TesterInlineStatic.postInc|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/ais1 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store $0 + local.get $9 + local.tee $3 + i32.store $0 offset=16 + i32.const 0 + local.get $3 + call $std/operator-overloading/TesterInlineStatic#get:x + i32.const 1 + i32.add + local.get $3 + call $std/operator-overloading/TesterInlineStatic#get:y + i32.const 1 + i32.add + call $std/operator-overloading/TesterInlineStatic#constructor + br $std/operator-overloading/TesterInlineStatic.postInc|inlined.0 + end global.set $std/operator-overloading/ais1 i32.const 0 i32.const 2 i32.const 3 call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais2 - global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/ais1 - local.tee $4 - i32.store $0 offset=20 - global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/ais2 - local.tee $5 - i32.store $0 offset=24 - i32.const 0 - local.get $4 - call $std/operator-overloading/TesterInlineStatic#get:x - local.get $5 - call $std/operator-overloading/TesterInlineStatic#get:x - i32.add - local.get $4 - call $std/operator-overloading/TesterInlineStatic#get:y - local.get $5 - call $std/operator-overloading/TesterInlineStatic#get:y - i32.add - call $std/operator-overloading/TesterInlineStatic#constructor + block $std/operator-overloading/TesterInlineStatic.add|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/ais1 + local.tee $4 + i32.store $0 offset=20 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/ais2 + local.tee $5 + i32.store $0 offset=24 + i32.const 0 + local.get $4 + call $std/operator-overloading/TesterInlineStatic#get:x + local.get $5 + call $std/operator-overloading/TesterInlineStatic#get:x + i32.add + local.get $4 + call $std/operator-overloading/TesterInlineStatic#get:y + local.get $5 + call $std/operator-overloading/TesterInlineStatic#get:y + i32.add + call $std/operator-overloading/TesterInlineStatic#constructor + br $std/operator-overloading/TesterInlineStatic.add|inlined.0 + end global.set $std/operator-overloading/ais global.get $std/operator-overloading/ais local.set $9 @@ -5120,46 +5193,52 @@ i32.const 2 call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii1 - global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/aii1 - local.tee $6 - i32.store $0 offset=28 - i32.const 0 - local.get $6 - call $std/operator-overloading/TesterInlineInstance#get:x - i32.const 1 - i32.add - local.get $6 - call $std/operator-overloading/TesterInlineInstance#get:y - i32.const 1 - i32.add - call $std/operator-overloading/TesterInlineInstance#constructor + block $std/operator-overloading/TesterInlineInstance#postInc|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/aii1 + local.tee $6 + i32.store $0 offset=28 + i32.const 0 + local.get $6 + call $std/operator-overloading/TesterInlineInstance#get:x + i32.const 1 + i32.add + local.get $6 + call $std/operator-overloading/TesterInlineInstance#get:y + i32.const 1 + i32.add + call $std/operator-overloading/TesterInlineInstance#constructor + br $std/operator-overloading/TesterInlineInstance#postInc|inlined.0 + end global.set $std/operator-overloading/aii1 i32.const 0 i32.const 2 i32.const 3 call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii2 - global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/aii1 - local.tee $7 - i32.store $0 offset=32 - global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/aii2 - local.tee $8 - i32.store $0 offset=36 - i32.const 0 - local.get $7 - call $std/operator-overloading/TesterInlineInstance#get:x - local.get $8 - call $std/operator-overloading/TesterInlineInstance#get:x - i32.add - local.get $7 - call $std/operator-overloading/TesterInlineInstance#get:y - local.get $8 - call $std/operator-overloading/TesterInlineInstance#get:y - i32.add - call $std/operator-overloading/TesterInlineInstance#constructor + block $std/operator-overloading/TesterInlineInstance#add|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/aii1 + local.tee $7 + i32.store $0 offset=32 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/aii2 + local.tee $8 + i32.store $0 offset=36 + i32.const 0 + local.get $7 + call $std/operator-overloading/TesterInlineInstance#get:x + local.get $8 + call $std/operator-overloading/TesterInlineInstance#get:x + i32.add + local.get $7 + call $std/operator-overloading/TesterInlineInstance#get:y + local.get $8 + call $std/operator-overloading/TesterInlineInstance#get:y + i32.add + call $std/operator-overloading/TesterInlineInstance#constructor + br $std/operator-overloading/TesterInlineInstance#add|inlined.0 + end global.set $std/operator-overloading/aii global.get $std/operator-overloading/aii local.set $9 diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index 47e1867c31..6af7d2c7f9 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -96,21 +96,30 @@ (local $this|55 i32) (local $value|56 f32) (local $this|57 i32) - i32.const 0 - local.set $this - i32.const 8 - local.set $offset - local.get $offset + block $std/pointer/Pointer#constructor|inlined.0 (result i32) + i32.const 0 + local.set $this + i32.const 8 + local.set $offset + local.get $offset + br $std/pointer/Pointer#constructor|inlined.0 + end global.set $std/pointer/one - i32.const 0 - local.set $this|2 - i32.const 24 - local.set $offset|3 - local.get $offset|3 + block $std/pointer/Pointer#constructor|inlined.1 (result i32) + i32.const 0 + local.set $this|2 + i32.const 24 + local.set $offset|3 + local.get $offset|3 + br $std/pointer/Pointer#constructor|inlined.1 + end global.set $std/pointer/two - global.get $std/pointer/one - local.set $this|4 - local.get $this|4 + block $std/pointer/Pointer#get:offset|inlined.0 (result i32) + global.get $std/pointer/one + local.set $this|4 + local.get $this|4 + br $std/pointer/Pointer#get:offset|inlined.0 + end i32.const 8 i32.eq i32.eqz @@ -122,9 +131,12 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/two - local.set $this|5 - local.get $this|5 + block $std/pointer/Pointer#get:offset|inlined.1 (result i32) + global.get $std/pointer/two + local.set $this|5 + local.get $this|5 + br $std/pointer/Pointer#get:offset|inlined.1 + end i32.const 24 i32.eq i32.eqz @@ -196,17 +208,23 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/one - local.set $this|10 - global.get $std/pointer/two - local.set $other - local.get $this|10 - local.get $other - i32.add + block $std/pointer/Pointer#add|inlined.0 (result i32) + global.get $std/pointer/one + local.set $this|10 + global.get $std/pointer/two + local.set $other + local.get $this|10 + local.get $other + i32.add + br $std/pointer/Pointer#add|inlined.0 + end global.set $std/pointer/add - global.get $std/pointer/add - local.set $this|12 - local.get $this|12 + block $std/pointer/Pointer#get:offset|inlined.2 (result i32) + global.get $std/pointer/add + local.set $this|12 + local.get $this|12 + br $std/pointer/Pointer#get:offset|inlined.2 + end i32.const 32 i32.eq i32.eqz @@ -218,17 +236,23 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/two - local.set $this|13 - global.get $std/pointer/one - local.set $other|14 - local.get $this|13 - local.get $other|14 - i32.sub + block $std/pointer/Pointer#sub|inlined.0 (result i32) + global.get $std/pointer/two + local.set $this|13 + global.get $std/pointer/one + local.set $other|14 + local.get $this|13 + local.get $other|14 + i32.sub + br $std/pointer/Pointer#sub|inlined.0 + end global.set $std/pointer/sub - global.get $std/pointer/sub - local.set $this|15 - local.get $this|15 + block $std/pointer/Pointer#get:offset|inlined.3 (result i32) + global.get $std/pointer/sub + local.set $this|15 + local.get $this|15 + br $std/pointer/Pointer#get:offset|inlined.3 + end i32.const 16 i32.eq i32.eqz @@ -240,9 +264,12 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/one - local.set $this|16 - local.get $this|16 + block $std/pointer/Pointer#get:offset|inlined.4 (result i32) + global.get $std/pointer/one + local.set $this|16 + local.get $this|16 + br $std/pointer/Pointer#get:offset|inlined.4 + end i32.const 8 i32.eq i32.eqz @@ -254,11 +281,14 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/one - local.set $this|17 - local.get $this|17 - i32.const 8 - i32.add + block $std/pointer/Pointer#inc|inlined.0 (result i32) + global.get $std/pointer/one + local.set $this|17 + local.get $this|17 + i32.const 8 + i32.add + br $std/pointer/Pointer#inc|inlined.0 + end global.set $std/pointer/one global.get $std/pointer/one global.set $std/pointer/nextOne @@ -274,9 +304,12 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/one - local.set $this|18 - local.get $this|18 + block $std/pointer/Pointer#get:offset|inlined.5 (result i32) + global.get $std/pointer/one + local.set $this|18 + local.get $this|18 + br $std/pointer/Pointer#get:offset|inlined.5 + end i32.const 16 i32.eq i32.eqz @@ -288,9 +321,12 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/two - local.set $this|19 - local.get $this|19 + block $std/pointer/Pointer#get:offset|inlined.6 (result i32) + global.get $std/pointer/two + local.set $this|19 + local.get $this|19 + br $std/pointer/Pointer#get:offset|inlined.6 + end i32.const 24 i32.eq i32.eqz @@ -302,21 +338,30 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/two - local.set $this|20 - local.get $this|20 - i32.const 8 - i32.sub + block $std/pointer/Pointer#dec|inlined.0 (result i32) + global.get $std/pointer/two + local.set $this|20 + local.get $this|20 + i32.const 8 + i32.sub + br $std/pointer/Pointer#dec|inlined.0 + end global.set $std/pointer/two - global.get $std/pointer/two - local.set $this|21 - local.get $this|21 - i32.const 8 - i32.sub + block $std/pointer/Pointer#dec|inlined.1 (result i32) + global.get $std/pointer/two + local.set $this|21 + local.get $this|21 + i32.const 8 + i32.sub + br $std/pointer/Pointer#dec|inlined.1 + end global.set $std/pointer/two - global.get $std/pointer/two - local.set $this|22 - local.get $this|22 + block $std/pointer/Pointer#get:offset|inlined.7 (result i32) + global.get $std/pointer/two + local.set $this|22 + local.get $this|22 + br $std/pointer/Pointer#get:offset|inlined.7 + end i32.const 8 i32.eq i32.eqz @@ -397,12 +442,18 @@ i32.const 8 memory.copy $0 $0 end - global.get $std/pointer/one - local.set $this|28 - local.get $this|28 - global.get $std/pointer/two - local.set $this|29 - local.get $this|29 + block $std/pointer/Pointer#get:offset|inlined.8 (result i32) + global.get $std/pointer/one + local.set $this|28 + local.get $this|28 + br $std/pointer/Pointer#get:offset|inlined.8 + end + block $std/pointer/Pointer#get:offset|inlined.9 (result i32) + global.get $std/pointer/two + local.set $this|29 + local.get $this|29 + br $std/pointer/Pointer#get:offset|inlined.9 + end i32.ne i32.eqz if @@ -453,11 +504,14 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $this|32 - i32.const 0 - local.set $offset|33 - local.get $offset|33 + block $std/pointer/Pointer#constructor|inlined.0 (result i32) + i32.const 0 + local.set $this|32 + i32.const 0 + local.set $offset|33 + local.get $offset|33 + br $std/pointer/Pointer#constructor|inlined.0 + end global.set $std/pointer/buf global.get $std/pointer/buf local.set $this|34 @@ -485,16 +539,19 @@ i32.add local.get $value|39 f32.store $0 - global.get $std/pointer/buf - local.set $this|40 - i32.const 0 - local.set $index|41 - local.get $this|40 - local.get $index|41 - i32.const 4 - i32.mul - i32.add - f32.load $0 + block $std/pointer/Pointer#get|inlined.0 (result f32) + global.get $std/pointer/buf + local.set $this|40 + i32.const 0 + local.set $index|41 + local.get $this|40 + local.get $index|41 + i32.const 4 + i32.mul + i32.add + f32.load $0 + br $std/pointer/Pointer#get|inlined.0 + end f32.const 1.100000023841858 f32.eq i32.eqz @@ -506,16 +563,19 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/buf - local.set $this|42 - i32.const 1 - local.set $index|43 - local.get $this|42 - local.get $index|43 - i32.const 4 - i32.mul - i32.add - f32.load $0 + block $std/pointer/Pointer#get|inlined.1 (result f32) + global.get $std/pointer/buf + local.set $this|42 + i32.const 1 + local.set $index|43 + local.get $this|42 + local.get $index|43 + i32.const 4 + i32.mul + i32.add + f32.load $0 + br $std/pointer/Pointer#get|inlined.1 + end f32.const 1.2000000476837158 f32.eq i32.eqz @@ -527,16 +587,19 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/buf - local.set $this|44 - i32.const 0 - local.set $index|45 - local.get $this|44 - local.get $index|45 - i32.const 4 - i32.mul - i32.add - f32.load $0 + block $std/pointer/Pointer#get|inlined.2 (result f32) + global.get $std/pointer/buf + local.set $this|44 + i32.const 0 + local.set $index|45 + local.get $this|44 + local.get $index|45 + i32.const 4 + i32.mul + i32.add + f32.load $0 + br $std/pointer/Pointer#get|inlined.2 + end f32.const 1.100000023841858 f32.eq i32.eqz @@ -548,16 +611,19 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/buf - local.set $this|46 - i32.const 1 - local.set $index|47 - local.get $this|46 - local.get $index|47 - i32.const 4 - i32.mul - i32.add - f32.load $0 + block $std/pointer/Pointer#get|inlined.3 (result f32) + global.get $std/pointer/buf + local.set $this|46 + i32.const 1 + local.set $index|47 + local.get $this|46 + local.get $index|47 + i32.const 4 + i32.mul + i32.add + f32.load $0 + br $std/pointer/Pointer#get|inlined.3 + end f32.const 1.2000000476837158 f32.eq i32.eqz @@ -608,16 +674,19 @@ i32.add local.get $value|50 f32.store $0 - global.get $std/pointer/buf - local.set $this|51 - i32.const 2 - local.set $index|52 - local.get $this|51 - local.get $index|52 - i32.const 4 - i32.mul - i32.add - f32.load $0 + block $std/pointer/Pointer#get|inlined.4 (result f32) + global.get $std/pointer/buf + local.set $this|51 + i32.const 2 + local.set $index|52 + local.get $this|51 + local.get $index|52 + i32.const 4 + i32.mul + i32.add + f32.load $0 + br $std/pointer/Pointer#get|inlined.4 + end f32.const 1.2999999523162842 f32.eq i32.eqz @@ -629,16 +698,19 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/buf - local.set $this|53 - i32.const 2 - local.set $index|54 - local.get $this|53 - local.get $index|54 - i32.const 4 - i32.mul - i32.add - f32.load $0 + block $std/pointer/Pointer#get|inlined.5 (result f32) + global.get $std/pointer/buf + local.set $this|53 + i32.const 2 + local.set $index|54 + local.get $this|53 + local.get $index|54 + i32.const 4 + i32.mul + i32.add + f32.load $0 + br $std/pointer/Pointer#get|inlined.5 + end f32.const 1.2999999523162842 f32.eq i32.eqz diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 977e179853..85d13c6344 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -85,6 +85,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -97,17 +98,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -119,8 +121,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -263,6 +263,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -282,6 +283,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -367,15 +369,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -402,6 +401,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -577,22 +577,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -617,16 +620,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -722,18 +728,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -757,18 +766,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -778,12 +790,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -931,22 +946,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -991,16 +1009,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1055,10 +1076,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1174,6 +1198,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1183,15 +1208,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1252,17 +1275,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1274,22 +1295,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1362,6 +1381,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1422,8 +1442,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1468,8 +1486,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1519,8 +1535,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1602,6 +1616,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1680,6 +1695,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1695,6 +1711,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1785,16 +1802,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1827,16 +1847,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1850,46 +1873,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1926,10 +1956,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2049,30 +2082,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2143,6 +2182,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2155,6 +2195,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2217,6 +2258,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2338,56 +2380,59 @@ i32.const 4 i32.le_u drop - local.get $key - i32.extend8_s - local.set $key|1 - i32.const 1 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.0 (result i32) + local.get $key + i32.extend8_s + local.set $key|1 + i32.const 1 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.0 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -2408,7 +2453,6 @@ ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -2423,8 +2467,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -2457,6 +2499,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -2466,6 +2509,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2501,7 +2545,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -2536,7 +2579,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -2547,7 +2593,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -2557,8 +2606,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -2595,12 +2642,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -2682,7 +2735,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -2716,10 +2772,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -2817,6 +2875,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -2931,6 +2990,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -2957,6 +3017,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -3024,21 +3085,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 i32) - (local $10 i32) - (local $k|11 i32) - (local $12 i32) + (local $k|6 i32) + (local $k|7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3061,8 +3118,6 @@ local.get $k i32.const 100 i32.lt_s - local.set $2 - local.get $2 if local.get $set local.get $k @@ -3114,16 +3169,14 @@ unreachable end i32.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_s - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -3135,11 +3188,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -3150,10 +3203,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -3187,8 +3240,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -3232,16 +3283,14 @@ unreachable end i32.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 i32.const 50 i32.lt_s - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -3253,11 +3302,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -3269,10 +3318,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 i32.const 1 i32.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -3290,16 +3339,14 @@ unreachable end i32.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 i32.const 50 i32.lt_s - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -3312,11 +3359,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -3328,11 +3375,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -3344,10 +3391,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 i32.const 1 i32.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -3436,57 +3483,60 @@ i32.const 4 i32.le_u drop - local.get $key - i32.const 255 - i32.and - local.set $key|1 - i32.const 1 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.1 (result i32) + local.get $key + i32.const 255 + i32.and + local.set $key|1 + i32.const 1 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.1 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -3507,7 +3557,6 @@ ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -3522,8 +3571,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -3558,6 +3605,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -3567,6 +3615,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3602,7 +3651,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -3637,7 +3685,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -3648,7 +3699,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -3658,8 +3712,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -3696,12 +3748,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -3783,7 +3841,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -3817,10 +3878,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -3879,6 +3942,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -3905,6 +3969,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -3972,21 +4037,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 i32) - (local $10 i32) - (local $k|11 i32) - (local $12 i32) + (local $k|6 i32) + (local $k|7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4009,8 +4070,6 @@ local.get $k i32.const 100 i32.lt_u - local.set $2 - local.get $2 if local.get $set local.get $k @@ -4062,16 +4121,14 @@ unreachable end i32.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_u - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -4083,11 +4140,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -4098,10 +4155,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -4135,8 +4192,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -4180,16 +4235,14 @@ unreachable end i32.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 i32.const 50 i32.lt_u - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -4201,11 +4254,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -4217,10 +4270,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 i32.const 1 i32.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -4238,16 +4291,14 @@ unreachable end i32.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 i32.const 50 i32.lt_u - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -4260,11 +4311,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -4276,11 +4327,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -4292,10 +4343,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 i32.const 1 i32.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -4384,56 +4435,59 @@ i32.const 4 i32.le_u drop - local.get $key - i32.extend16_s - local.set $key|1 - i32.const 2 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.2 (result i32) + local.get $key + i32.extend16_s + local.set $key|1 + i32.const 2 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.2 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -4454,7 +4508,6 @@ ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -4469,8 +4522,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -4503,6 +4554,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -4512,6 +4564,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -4547,7 +4600,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -4582,7 +4634,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -4593,7 +4648,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -4603,8 +4661,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -4641,12 +4697,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -4728,7 +4790,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -4762,10 +4827,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -4824,6 +4891,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -4850,6 +4918,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -4917,21 +4986,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 i32) - (local $10 i32) - (local $k|11 i32) - (local $12 i32) + (local $k|6 i32) + (local $k|7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4954,8 +5019,6 @@ local.get $k i32.const 100 i32.lt_s - local.set $2 - local.get $2 if local.get $set local.get $k @@ -5007,16 +5070,14 @@ unreachable end i32.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_s - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -5028,11 +5089,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -5043,10 +5104,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -5080,8 +5141,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -5125,16 +5184,14 @@ unreachable end i32.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 i32.const 50 i32.lt_s - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -5146,11 +5203,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -5162,10 +5219,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 i32.const 1 i32.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -5183,16 +5240,14 @@ unreachable end i32.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 i32.const 50 i32.lt_s - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -5205,11 +5260,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -5221,11 +5276,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -5237,10 +5292,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 i32.const 1 i32.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -5329,57 +5384,60 @@ i32.const 4 i32.le_u drop - local.get $key - i32.const 65535 - i32.and - local.set $key|1 - i32.const 2 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.3 (result i32) + local.get $key + i32.const 65535 + i32.and + local.set $key|1 + i32.const 2 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.3 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -5400,7 +5458,6 @@ ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -5415,8 +5472,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -5451,6 +5506,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -5460,6 +5516,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -5495,7 +5552,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -5530,7 +5586,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -5541,7 +5600,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -5551,8 +5613,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -5589,12 +5649,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -5676,7 +5742,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -5710,10 +5779,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -5772,6 +5843,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -5798,6 +5870,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -5865,21 +5938,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 i32) - (local $10 i32) - (local $k|11 i32) - (local $12 i32) + (local $k|6 i32) + (local $k|7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -5902,8 +5971,6 @@ local.get $k i32.const 100 i32.lt_u - local.set $2 - local.get $2 if local.get $set local.get $k @@ -5955,16 +6022,14 @@ unreachable end i32.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_u - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -5976,11 +6041,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -5991,10 +6056,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -6028,8 +6093,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -6073,16 +6136,14 @@ unreachable end i32.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 i32.const 50 i32.lt_u - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -6094,11 +6155,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -6110,10 +6171,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 i32.const 1 i32.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -6131,16 +6192,14 @@ unreachable end i32.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 i32.const 50 i32.lt_u - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -6153,11 +6212,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -6169,11 +6228,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -6185,10 +6244,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 i32.const 1 i32.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -6277,55 +6336,58 @@ i32.const 4 i32.le_u drop - local.get $key - local.set $key|1 - i32.const 4 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.4 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.4 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -6346,7 +6408,6 @@ ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -6361,8 +6422,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -6393,6 +6452,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -6402,6 +6462,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -6437,7 +6498,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -6472,7 +6532,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -6483,7 +6546,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -6493,8 +6559,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -6531,12 +6595,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -6618,7 +6688,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -6652,10 +6725,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -6714,6 +6789,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -6740,6 +6816,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -6807,21 +6884,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 i32) - (local $10 i32) - (local $k|11 i32) - (local $12 i32) + (local $k|6 i32) + (local $k|7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -6844,8 +6917,6 @@ local.get $k i32.const 100 i32.lt_s - local.set $2 - local.get $2 if local.get $set local.get $k @@ -6897,16 +6968,14 @@ unreachable end i32.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_s - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -6918,11 +6987,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -6933,10 +7002,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -6970,8 +7039,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -7015,16 +7082,14 @@ unreachable end i32.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 i32.const 50 i32.lt_s - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -7036,11 +7101,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -7052,10 +7117,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 i32.const 1 i32.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -7073,16 +7138,14 @@ unreachable end i32.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 i32.const 50 i32.lt_s - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -7095,11 +7158,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -7111,11 +7174,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -7127,10 +7190,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 i32.const 1 i32.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -7210,64 +7273,67 @@ (local $len i32) (local $h i32) i32.const 0 - drop - i32.const 0 - drop - i32.const 0 - drop - i32.const 4 - i32.const 4 - i32.le_u - drop - local.get $key - local.set $key|1 - i32.const 4 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + block $~lib/util/hash/hash32|inlined.5 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.5 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -7288,7 +7354,6 @@ ) (func $~lib/set/Set#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -7303,8 +7368,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -7335,6 +7398,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -7344,6 +7408,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -7379,7 +7444,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -7414,7 +7478,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -7425,7 +7492,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -7435,8 +7505,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -7473,12 +7541,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -7560,7 +7634,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -7594,10 +7671,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -7656,6 +7735,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -7682,6 +7762,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -7749,21 +7830,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i32) - (local $2 i32) - (local $k|3 i32) - (local $4 i32) + (local $k|2 i32) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 i32) - (local $10 i32) - (local $k|11 i32) - (local $12 i32) + (local $k|6 i32) + (local $k|7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -7786,8 +7863,6 @@ local.get $k i32.const 100 i32.lt_u - local.set $2 - local.get $2 if local.get $set local.get $k @@ -7839,16 +7914,14 @@ unreachable end i32.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i32.const 100 i32.lt_u - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -7860,11 +7933,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -7875,10 +7948,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i32.const 1 i32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -7912,8 +7985,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -7957,16 +8028,14 @@ unreachable end i32.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 i32.const 50 i32.lt_u - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -7978,11 +8047,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -7994,10 +8063,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 i32.const 1 i32.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -8015,16 +8084,14 @@ unreachable end i32.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 i32.const 50 i32.lt_u - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -8037,11 +8104,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -8053,11 +8120,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -8069,10 +8136,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 i32.const 1 i32.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -8164,69 +8231,72 @@ i32.const 8 i32.eq drop - local.get $key - local.set $key|1 - i32.const 0 - i32.const 374761393 - i32.add - i32.const 8 - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $key|1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash64|inlined.0 (result i32) + local.get $key + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.0 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -8247,7 +8317,6 @@ ) (func $~lib/set/Set#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -8262,8 +8331,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -8294,6 +8361,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) local.get $this @@ -8303,6 +8371,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -8338,7 +8407,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i64) @@ -8373,7 +8441,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -8384,7 +8455,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -8394,8 +8468,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -8432,12 +8504,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -8519,7 +8597,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -8553,10 +8634,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -8615,6 +8698,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) @@ -8641,6 +8725,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) (local $entry i32) @@ -8708,21 +8793,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i64) - (local $2 i32) - (local $k|3 i64) - (local $4 i32) + (local $k|2 i64) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 i64) - (local $10 i32) - (local $k|11 i64) - (local $12 i32) + (local $k|6 i64) + (local $k|7 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8745,8 +8826,6 @@ local.get $k i64.const 100 i64.lt_s - local.set $2 - local.get $2 if local.get $set local.get $k @@ -8798,16 +8877,14 @@ unreachable end i64.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i64.const 100 i64.lt_s - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -8819,11 +8896,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -8834,10 +8911,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i64.const 1 i64.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -8871,8 +8948,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -8916,16 +8991,14 @@ unreachable end i64.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 i64.const 50 i64.lt_s - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -8937,11 +9010,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -8953,10 +9026,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 i64.const 1 i64.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -8974,16 +9047,14 @@ unreachable end i64.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 i64.const 50 i64.lt_s - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -8996,11 +9067,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -9012,11 +9083,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -9028,10 +9099,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 i64.const 1 i64.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -9123,69 +9194,72 @@ i32.const 8 i32.eq drop - local.get $key - local.set $key|1 - i32.const 0 - i32.const 374761393 - i32.add - i32.const 8 - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $key|1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash64|inlined.1 (result i32) + local.get $key + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.1 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -9206,7 +9280,6 @@ ) (func $~lib/set/Set#find (type $i32_i64_i32_=>_i32) (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -9221,8 +9294,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -9253,6 +9324,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) local.get $this @@ -9262,6 +9334,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -9297,7 +9370,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i64) @@ -9332,7 +9404,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -9343,7 +9418,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -9353,8 +9431,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -9391,12 +9467,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -9478,7 +9560,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -9512,10 +9597,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -9574,6 +9661,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) (local $value i64) @@ -9600,6 +9688,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_i64_=>_i32) (param $this i32) (param $key i64) (result i32) (local $entry i32) @@ -9667,21 +9756,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k i64) - (local $2 i32) - (local $k|3 i64) - (local $4 i32) + (local $k|2 i64) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 i64) - (local $10 i32) - (local $k|11 i64) - (local $12 i32) + (local $k|6 i64) + (local $k|7 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -9704,8 +9789,6 @@ local.get $k i64.const 100 i64.lt_u - local.set $2 - local.get $2 if local.get $set local.get $k @@ -9757,16 +9840,14 @@ unreachable end i64.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 i64.const 100 i64.lt_u - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -9778,11 +9859,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -9793,10 +9874,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 i64.const 1 i64.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -9830,8 +9911,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -9875,16 +9954,14 @@ unreachable end i64.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 i64.const 50 i64.lt_u - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -9896,11 +9973,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -9912,10 +9989,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 i64.const 1 i64.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -9933,16 +10010,14 @@ unreachable end i64.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 i64.const 50 i64.lt_u - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -9955,11 +10030,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -9971,11 +10046,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -9987,10 +10062,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 i64.const 1 i64.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -10079,56 +10154,59 @@ i32.const 4 i32.eq drop - local.get $key - i32.reinterpret_f32 - local.set $key|1 - i32.const 4 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.6 (result i32) + local.get $key + i32.reinterpret_f32 + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.6 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -10149,7 +10227,6 @@ ) (func $~lib/set/Set#find (type $i32_f32_i32_=>_i32) (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -10164,8 +10241,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -10196,6 +10271,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_f32_=>_i32) (param $this i32) (param $key f32) (result i32) local.get $this @@ -10205,6 +10281,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -10240,7 +10317,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey f32) @@ -10275,7 +10351,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -10286,7 +10365,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -10296,8 +10378,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -10334,12 +10414,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -10421,7 +10507,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -10455,10 +10544,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -10517,6 +10608,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) (local $value f32) @@ -10543,6 +10635,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_f32_=>_i32) (param $this i32) (param $key f32) (result i32) (local $entry i32) @@ -10610,21 +10703,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k f32) - (local $2 i32) - (local $k|3 f32) - (local $4 i32) + (local $k|2 f32) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 f32) - (local $10 i32) - (local $k|11 f32) - (local $12 i32) + (local $k|6 f32) + (local $k|7 f32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -10647,8 +10736,6 @@ local.get $k f32.const 100 f32.lt - local.set $2 - local.get $2 if local.get $set local.get $k @@ -10700,16 +10787,14 @@ unreachable end f32.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 f32.const 100 f32.lt - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -10721,11 +10806,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -10736,10 +10821,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 f32.const 1 f32.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -10773,8 +10858,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -10818,16 +10901,14 @@ unreachable end f32.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 f32.const 50 f32.lt - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -10839,11 +10920,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -10855,10 +10936,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 f32.const 1 f32.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -10876,16 +10957,14 @@ unreachable end f32.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 f32.const 50 f32.lt - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -10898,11 +10977,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -10914,11 +10993,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -10930,10 +11009,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 f32.const 1 f32.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -11025,70 +11104,73 @@ i32.const 8 i32.eq drop - local.get $key - i64.reinterpret_f64 - local.set $key|1 - i32.const 0 - i32.const 374761393 - i32.add - i32.const 8 - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $key|1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash64|inlined.2 (result i32) + local.get $key + i64.reinterpret_f64 + local.set $key|1 + i32.const 0 + i32.const 374761393 + i32.add + i32.const 8 + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $key|1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash64|inlined.2 + end return ) (func $~lib/set/Set#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -11109,7 +11191,6 @@ ) (func $~lib/set/Set#find (type $i32_f64_i32_=>_i32) (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/set/Set#get:buckets @@ -11124,8 +11205,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/set/SetEntry#get:taggedNext @@ -11156,6 +11235,7 @@ end end i32.const 0 + return ) (func $~lib/set/Set#has (type $i32_f64_=>_i32) (param $this i32) (param $key f64) (result i32) local.get $this @@ -11165,6 +11245,7 @@ call $~lib/set/Set#find i32.const 0 i32.ne + return ) (func $~lib/set/Set#get:entriesOffset (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -11200,7 +11281,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey f64) @@ -11235,7 +11315,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -11246,7 +11329,10 @@ local.get $oldPtr local.get $this call $~lib/set/Set#get:entriesOffset - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -11256,8 +11342,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -11294,12 +11378,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -11381,7 +11471,10 @@ i32.add call $~lib/set/Set#set:entriesOffset local.get $4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -11415,10 +11508,12 @@ i32.store $0 end local.get $this + return ) (func $~lib/set/Set#get:size (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/set/Set#get:entriesCount + return ) (func $~lib/array/Array#set:buffer (type $i32_i32_=>_none) (param $this i32) (param $buffer i32) local.get $this @@ -11477,6 +11572,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) (local $value f64) @@ -11503,6 +11599,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/set/Set#delete (type $i32_f64_=>_i32) (param $this i32) (param $key f64) (result i32) (local $entry i32) @@ -11570,21 +11667,17 @@ call $~lib/set/Set#rehash end i32.const 1 + return ) (func $std/set/testNumeric (type $none_=>_none) (local $set i32) (local $k f64) - (local $2 i32) - (local $k|3 f64) - (local $4 i32) + (local $k|2 f64) (local $vals i32) (local $valSet i32) (local $index i32) - (local $8 i32) - (local $k|9 f64) - (local $10 i32) - (local $k|11 f64) - (local $12 i32) + (local $k|6 f64) + (local $k|7 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11607,8 +11700,6 @@ local.get $k f64.const 100 f64.lt - local.set $2 - local.get $2 if local.get $set local.get $k @@ -11660,16 +11751,14 @@ unreachable end f64.const 50 - local.set $k|3 + local.set $k|2 loop $for-loop|1 - local.get $k|3 + local.get $k|2 f64.const 100 f64.lt - local.set $4 - local.get $4 if local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -11681,11 +11770,11 @@ unreachable end local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#add drop local.get $set - local.get $k|3 + local.get $k|2 call $~lib/set/Set#has i32.eqz if @@ -11696,10 +11785,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|3 + local.get $k|2 f64.const 1 f64.add - local.set $k|3 + local.set $k|2 br $for-loop|1 end end @@ -11733,8 +11822,6 @@ local.get $vals call $~lib/array/Array#get:length i32.lt_s - local.set $8 - local.get $8 if local.get $set local.get $vals @@ -11778,16 +11865,14 @@ unreachable end f64.const 0 - local.set $k|9 + local.set $k|6 loop $for-loop|3 - local.get $k|9 + local.get $k|6 f64.const 50 f64.lt - local.set $10 - local.get $10 if local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz if @@ -11799,11 +11884,11 @@ unreachable end local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#delete drop local.get $set - local.get $k|9 + local.get $k|6 call $~lib/set/Set#has i32.eqz i32.eqz @@ -11815,10 +11900,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|9 + local.get $k|6 f64.const 1 f64.add - local.set $k|9 + local.set $k|6 br $for-loop|3 end end @@ -11836,16 +11921,14 @@ unreachable end f64.const 0 - local.set $k|11 + local.set $k|7 loop $for-loop|4 - local.get $k|11 + local.get $k|7 f64.const 50 f64.lt - local.set $12 - local.get $12 if local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -11858,11 +11941,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#add drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz if @@ -11874,11 +11957,11 @@ unreachable end local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#delete drop local.get $set - local.get $k|11 + local.get $k|7 call $~lib/set/Set#has i32.eqz i32.eqz @@ -11890,10 +11973,10 @@ call $~lib/builtins/abort unreachable end - local.get $k|11 + local.get $k|7 f64.const 1 f64.add - local.set $k|11 + local.set $k|7 br $for-loop|4 end end @@ -11931,8 +12014,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -11943,8 +12024,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -11958,8 +12037,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -12672,7 +12749,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -12728,7 +12808,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -12791,7 +12874,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -12847,7 +12933,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -12910,7 +12999,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -12966,7 +13058,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13029,7 +13124,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13085,7 +13183,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13148,7 +13249,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13204,7 +13308,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13267,7 +13374,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13323,7 +13433,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13386,7 +13499,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13442,7 +13558,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13505,7 +13624,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13561,7 +13683,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13624,7 +13749,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13680,7 +13808,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13743,7 +13874,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13799,7 +13933,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.7 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.7 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -13861,6 +13998,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -13958,10 +14096,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13990,12 +14127,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -14007,11 +14145,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -14027,12 +14165,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -14130,10 +14269,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14162,12 +14300,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -14179,11 +14318,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -14199,12 +14338,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -14302,10 +14442,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14334,12 +14473,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -14351,11 +14491,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -14371,12 +14511,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -14474,10 +14615,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14506,12 +14646,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -14523,11 +14664,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -14543,12 +14684,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -14646,10 +14788,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14678,12 +14819,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -14695,11 +14837,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -14715,12 +14857,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -14818,10 +14961,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14850,12 +14992,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -14867,11 +15010,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -14887,12 +15030,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -14990,10 +15134,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15022,12 +15165,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -15039,11 +15183,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -15059,12 +15203,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -15162,10 +15307,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15194,12 +15338,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -15211,11 +15356,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -15231,12 +15376,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -15334,10 +15480,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15366,12 +15511,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 8 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -15383,11 +15529,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -15403,12 +15549,13 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) (func $~lib/array/Array#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $2 i32) @@ -15506,10 +15653,9 @@ (local $values i32) (local $length i32) (local $i i32) - (local $6 i32) (local $entry i32) + (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15538,12 +15684,13 @@ local.get $i local.get $size i32.lt_s - local.set $6 - local.get $6 if local.get $start local.get $i - i32.const 16 + block $~lib/set/ENTRY_SIZE|inlined.6 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $entry @@ -15555,11 +15702,11 @@ if local.get $values local.get $length - local.tee $8 + local.tee $7 i32.const 1 i32.add local.set $length - local.get $8 + local.get $7 local.get $entry call $~lib/set/SetEntry#get:key call $~lib/array/Array#__uset @@ -15575,11 +15722,12 @@ local.get $length call $~lib/array/Array#set:length local.get $values - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 + return ) ) diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index 313a935210..c5e5edfc64 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -1605,23 +1605,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -2562,7 +2562,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 + loop $for-loop|00 local.get $3 local.get $6 i32.lt_s @@ -2594,7 +2594,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|01 + br $for-loop|00 end end local.get $7 @@ -2613,7 +2613,7 @@ i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $1 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -2636,41 +2636,41 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $1 + local.set $3 local.get $2 i32.load $0 local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $3 i32.const 16 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/set/Set#find10 - loop $while-continue|011 - local.get $1 + local.set $3 + block $__inlined_func$~lib/set/Set#find11 + loop $while-continue|012 + local.get $3 if - local.get $1 + local.get $3 i32.load $0 offset=4 local.tee $5 i32.const 1 @@ -2678,25 +2678,25 @@ if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u $0 local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find10 + br_if $__inlined_func$~lib/set/Set#find11 local.get $5 i32.const -2 i32.and - local.set $1 - br $while-continue|011 + local.set $3 + br $while-continue|012 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -2706,7 +2706,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 local.get $7 local.get $0 call $~lib/array/Array#__get @@ -2718,7 +2718,7 @@ br $for-loop|2 end end - local.get $3 + local.get $1 i32.load $0 offset=20 local.get $2 i32.load $0 offset=20 @@ -2777,8 +2777,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find13 - loop $while-continue|014 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|015 local.get $1 if local.get $1 @@ -2796,12 +2796,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find13 + br_if $__inlined_func$~lib/set/Set#find14 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|014 + br $while-continue|015 end end i32.const 0 @@ -2859,8 +2859,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find16 - loop $while-continue|017 + block $__inlined_func$~lib/set/Set#find17 + loop $while-continue|018 local.get $1 if local.get $1 @@ -2878,12 +2878,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find16 + br_if $__inlined_func$~lib/set/Set#find17 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|017 + br $while-continue|018 end end i32.const 0 @@ -2963,8 +2963,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find19 - loop $while-continue|020 + block $__inlined_func$~lib/set/Set#find20 + loop $while-continue|021 local.get $1 if local.get $1 @@ -2982,12 +2982,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find19 + br_if $__inlined_func$~lib/set/Set#find20 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|020 + br $while-continue|021 end end i32.const 0 @@ -3044,8 +3044,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find22 - loop $while-continue|023 + block $__inlined_func$~lib/set/Set#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -3063,12 +3063,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find22 + br_if $__inlined_func$~lib/set/Set#find23 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|023 + br $while-continue|024 end end i32.const 0 @@ -3126,8 +3126,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find25 - loop $while-continue|026 + block $__inlined_func$~lib/set/Set#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -3145,12 +3145,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find25 + br_if $__inlined_func$~lib/set/Set#find26 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|026 + br $while-continue|027 end end i32.const 0 @@ -3298,23 +3298,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -4170,7 +4170,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 + loop $for-loop|00 local.get $3 local.get $6 i32.lt_s @@ -4202,7 +4202,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|01 + br $for-loop|00 end end local.get $7 @@ -4221,7 +4221,7 @@ i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $1 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -4245,41 +4245,41 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $1 + local.set $3 local.get $2 i32.load $0 local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $3 i32.const 16 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/set/Set#find10 - loop $while-continue|011 - local.get $1 + local.set $3 + block $__inlined_func$~lib/set/Set#find11 + loop $while-continue|012 + local.get $3 if - local.get $1 + local.get $3 i32.load $0 offset=4 local.tee $5 i32.const 1 @@ -4287,25 +4287,25 @@ if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u $0 local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find10 + br_if $__inlined_func$~lib/set/Set#find11 local.get $5 i32.const -2 i32.and - local.set $1 - br $while-continue|011 + local.set $3 + br $while-continue|012 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -4315,7 +4315,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 local.get $7 local.get $0 call $~lib/array/Array#__get @@ -4327,7 +4327,7 @@ br $for-loop|2 end end - local.get $3 + local.get $1 i32.load $0 offset=20 local.get $2 i32.load $0 offset=20 @@ -4387,8 +4387,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find13 - loop $while-continue|014 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|015 local.get $1 if local.get $1 @@ -4406,12 +4406,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find13 + br_if $__inlined_func$~lib/set/Set#find14 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|014 + br $while-continue|015 end end i32.const 0 @@ -4470,8 +4470,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find16 - loop $while-continue|017 + block $__inlined_func$~lib/set/Set#find17 + loop $while-continue|018 local.get $1 if local.get $1 @@ -4489,12 +4489,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find16 + br_if $__inlined_func$~lib/set/Set#find17 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|017 + br $while-continue|018 end end i32.const 0 @@ -4575,8 +4575,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find19 - loop $while-continue|020 + block $__inlined_func$~lib/set/Set#find20 + loop $while-continue|021 local.get $1 if local.get $1 @@ -4594,12 +4594,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find19 + br_if $__inlined_func$~lib/set/Set#find20 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|020 + br $while-continue|021 end end i32.const 0 @@ -4657,8 +4657,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find22 - loop $while-continue|023 + block $__inlined_func$~lib/set/Set#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -4676,12 +4676,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find22 + br_if $__inlined_func$~lib/set/Set#find23 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|023 + br $while-continue|024 end end i32.const 0 @@ -4740,8 +4740,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find25 - loop $while-continue|026 + block $__inlined_func$~lib/set/Set#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -4759,12 +4759,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find25 + br_if $__inlined_func$~lib/set/Set#find26 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|026 + br $while-continue|027 end end i32.const 0 @@ -4913,23 +4913,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -5783,7 +5783,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 + loop $for-loop|00 local.get $3 local.get $6 i32.lt_s @@ -5817,7 +5817,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|01 + br $for-loop|00 end end local.get $7 @@ -5836,7 +5836,7 @@ i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $1 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -5859,41 +5859,41 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $1 + local.set $3 local.get $2 i32.load $0 local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $3 i32.const 16 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/set/Set#find10 - loop $while-continue|011 - local.get $1 + local.set $3 + block $__inlined_func$~lib/set/Set#find11 + loop $while-continue|012 + local.get $3 if - local.get $1 + local.get $3 i32.load $0 offset=4 local.tee $5 i32.const 1 @@ -5901,25 +5901,25 @@ if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u $0 local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find10 + br_if $__inlined_func$~lib/set/Set#find11 local.get $5 i32.const -2 i32.and - local.set $1 - br $while-continue|011 + local.set $3 + br $while-continue|012 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -5929,7 +5929,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 local.get $7 local.get $0 call $~lib/array/Array#__get @@ -5941,7 +5941,7 @@ br $for-loop|2 end end - local.get $3 + local.get $1 i32.load $0 offset=20 local.get $2 i32.load $0 offset=20 @@ -6000,8 +6000,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find13 - loop $while-continue|014 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|015 local.get $1 if local.get $1 @@ -6019,12 +6019,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find13 + br_if $__inlined_func$~lib/set/Set#find14 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|014 + br $while-continue|015 end end i32.const 0 @@ -6082,8 +6082,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find16 - loop $while-continue|017 + block $__inlined_func$~lib/set/Set#find17 + loop $while-continue|018 local.get $1 if local.get $1 @@ -6101,12 +6101,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find16 + br_if $__inlined_func$~lib/set/Set#find17 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|017 + br $while-continue|018 end end i32.const 0 @@ -6186,8 +6186,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find19 - loop $while-continue|020 + block $__inlined_func$~lib/set/Set#find20 + loop $while-continue|021 local.get $1 if local.get $1 @@ -6205,12 +6205,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find19 + br_if $__inlined_func$~lib/set/Set#find20 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|020 + br $while-continue|021 end end i32.const 0 @@ -6267,8 +6267,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find22 - loop $while-continue|023 + block $__inlined_func$~lib/set/Set#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -6286,12 +6286,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find22 + br_if $__inlined_func$~lib/set/Set#find23 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|023 + br $while-continue|024 end end i32.const 0 @@ -6349,8 +6349,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find25 - loop $while-continue|026 + block $__inlined_func$~lib/set/Set#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -6368,12 +6368,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find25 + br_if $__inlined_func$~lib/set/Set#find26 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|026 + br $while-continue|027 end end i32.const 0 @@ -6521,23 +6521,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -7397,7 +7397,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 + loop $for-loop|00 local.get $3 local.get $6 i32.lt_s @@ -7431,7 +7431,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|01 + br $for-loop|00 end end local.get $7 @@ -7450,7 +7450,7 @@ i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $1 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -7474,41 +7474,41 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $1 + local.set $3 local.get $2 i32.load $0 local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $3 i32.const 16 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/set/Set#find10 - loop $while-continue|011 - local.get $1 + local.set $3 + block $__inlined_func$~lib/set/Set#find11 + loop $while-continue|012 + local.get $3 if - local.get $1 + local.get $3 i32.load $0 offset=4 local.tee $5 i32.const 1 @@ -7516,25 +7516,25 @@ if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u $0 local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find10 + br_if $__inlined_func$~lib/set/Set#find11 local.get $5 i32.const -2 i32.and - local.set $1 - br $while-continue|011 + local.set $3 + br $while-continue|012 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -7544,7 +7544,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 local.get $7 local.get $0 call $~lib/array/Array#__get @@ -7556,7 +7556,7 @@ br $for-loop|2 end end - local.get $3 + local.get $1 i32.load $0 offset=20 local.get $2 i32.load $0 offset=20 @@ -7616,8 +7616,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find13 - loop $while-continue|014 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|015 local.get $1 if local.get $1 @@ -7635,12 +7635,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find13 + br_if $__inlined_func$~lib/set/Set#find14 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|014 + br $while-continue|015 end end i32.const 0 @@ -7699,8 +7699,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find16 - loop $while-continue|017 + block $__inlined_func$~lib/set/Set#find17 + loop $while-continue|018 local.get $1 if local.get $1 @@ -7718,12 +7718,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find16 + br_if $__inlined_func$~lib/set/Set#find17 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|017 + br $while-continue|018 end end i32.const 0 @@ -7804,8 +7804,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find19 - loop $while-continue|020 + block $__inlined_func$~lib/set/Set#find20 + loop $while-continue|021 local.get $1 if local.get $1 @@ -7823,12 +7823,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find19 + br_if $__inlined_func$~lib/set/Set#find20 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|020 + br $while-continue|021 end end i32.const 0 @@ -7886,8 +7886,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find22 - loop $while-continue|023 + block $__inlined_func$~lib/set/Set#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -7905,12 +7905,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find22 + br_if $__inlined_func$~lib/set/Set#find23 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|023 + br $while-continue|024 end end i32.const 0 @@ -7969,8 +7969,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find25 - loop $while-continue|026 + block $__inlined_func$~lib/set/Set#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -7988,12 +7988,12 @@ i32.and i32.eq end - br_if $__inlined_func$~lib/set/Set#find25 + br_if $__inlined_func$~lib/set/Set#find26 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|026 + br $while-continue|027 end end i32.const 0 @@ -8141,23 +8141,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -8993,7 +8993,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 + loop $for-loop|00 local.get $3 local.get $6 i32.lt_s @@ -9027,7 +9027,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|01 + br $for-loop|00 end end local.get $7 @@ -9046,7 +9046,7 @@ i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $1 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -9068,41 +9068,41 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $1 + local.set $3 local.get $2 i32.load $0 local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $3 i32.const 16 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/set/Set#find10 - loop $while-continue|011 - local.get $1 + local.set $3 + block $__inlined_func$~lib/set/Set#find11 + loop $while-continue|012 + local.get $3 if - local.get $1 + local.get $3 i32.load $0 offset=4 local.tee $5 i32.const 1 @@ -9110,23 +9110,23 @@ if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load $0 local.get $4 i32.eq end - br_if $__inlined_func$~lib/set/Set#find10 + br_if $__inlined_func$~lib/set/Set#find11 local.get $5 i32.const -2 i32.and - local.set $1 - br $while-continue|011 + local.set $3 + br $while-continue|012 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -9136,7 +9136,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 local.get $7 local.get $0 call $~lib/array/Array#__get @@ -9148,7 +9148,7 @@ br $for-loop|2 end end - local.get $3 + local.get $1 i32.load $0 offset=20 local.get $2 i32.load $0 offset=20 @@ -9206,8 +9206,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find13 - loop $while-continue|014 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|015 local.get $1 if local.get $1 @@ -9223,12 +9223,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find13 + br_if $__inlined_func$~lib/set/Set#find14 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|014 + br $while-continue|015 end end i32.const 0 @@ -9285,8 +9285,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find16 - loop $while-continue|017 + block $__inlined_func$~lib/set/Set#find17 + loop $while-continue|018 local.get $1 if local.get $1 @@ -9302,12 +9302,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find16 + br_if $__inlined_func$~lib/set/Set#find17 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|017 + br $while-continue|018 end end i32.const 0 @@ -9386,8 +9386,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find19 - loop $while-continue|020 + block $__inlined_func$~lib/set/Set#find20 + loop $while-continue|021 local.get $1 if local.get $1 @@ -9403,12 +9403,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find19 + br_if $__inlined_func$~lib/set/Set#find20 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|020 + br $while-continue|021 end end i32.const 0 @@ -9464,8 +9464,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find22 - loop $while-continue|023 + block $__inlined_func$~lib/set/Set#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -9481,12 +9481,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find22 + br_if $__inlined_func$~lib/set/Set#find23 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|023 + br $while-continue|024 end end i32.const 0 @@ -9543,8 +9543,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find25 - loop $while-continue|026 + block $__inlined_func$~lib/set/Set#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -9560,12 +9560,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find25 + br_if $__inlined_func$~lib/set/Set#find26 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|026 + br $while-continue|027 end end i32.const 0 @@ -9713,23 +9713,23 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 @@ -10565,7 +10565,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|01 + loop $for-loop|00 local.get $3 local.get $6 i32.lt_s @@ -10599,7 +10599,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|01 + br $for-loop|00 end end local.get $7 @@ -10618,7 +10618,7 @@ i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $1 i32.store $0 offset=8 i32.const 0 local.set $0 @@ -10640,41 +10640,41 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $1 + local.set $3 local.get $2 i32.load $0 local.get $2 i32.load $0 offset=4 - local.get $1 + local.get $3 i32.const 16 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load $0 - local.set $1 - block $__inlined_func$~lib/set/Set#find10 - loop $while-continue|011 - local.get $1 + local.set $3 + block $__inlined_func$~lib/set/Set#find11 + loop $while-continue|012 + local.get $3 if - local.get $1 + local.get $3 i32.load $0 offset=4 local.tee $5 i32.const 1 @@ -10682,23 +10682,23 @@ if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load $0 local.get $4 i32.eq end - br_if $__inlined_func$~lib/set/Set#find10 + br_if $__inlined_func$~lib/set/Set#find11 local.get $5 i32.const -2 i32.and - local.set $1 - br $while-continue|011 + local.set $3 + br $while-continue|012 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -10708,7 +10708,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 local.get $7 local.get $0 call $~lib/array/Array#__get @@ -10720,7 +10720,7 @@ br $for-loop|2 end end - local.get $3 + local.get $1 i32.load $0 offset=20 local.get $2 i32.load $0 offset=20 @@ -10778,8 +10778,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find13 - loop $while-continue|014 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|015 local.get $1 if local.get $1 @@ -10795,12 +10795,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find13 + br_if $__inlined_func$~lib/set/Set#find14 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|014 + br $while-continue|015 end end i32.const 0 @@ -10857,8 +10857,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find16 - loop $while-continue|017 + block $__inlined_func$~lib/set/Set#find17 + loop $while-continue|018 local.get $1 if local.get $1 @@ -10874,12 +10874,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find16 + br_if $__inlined_func$~lib/set/Set#find17 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|017 + br $while-continue|018 end end i32.const 0 @@ -10958,8 +10958,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find19 - loop $while-continue|020 + block $__inlined_func$~lib/set/Set#find20 + loop $while-continue|021 local.get $1 if local.get $1 @@ -10975,12 +10975,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find19 + br_if $__inlined_func$~lib/set/Set#find20 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|020 + br $while-continue|021 end end i32.const 0 @@ -11036,8 +11036,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find22 - loop $while-continue|023 + block $__inlined_func$~lib/set/Set#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -11053,12 +11053,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find22 + br_if $__inlined_func$~lib/set/Set#find23 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|023 + br $while-continue|024 end end i32.const 0 @@ -11115,8 +11115,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find25 - loop $while-continue|026 + block $__inlined_func$~lib/set/Set#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -11132,12 +11132,12 @@ local.get $0 i32.eq end - br_if $__inlined_func$~lib/set/Set#find25 + br_if $__inlined_func$~lib/set/Set#find26 local.get $3 i32.const -2 i32.and local.set $1 - br $while-continue|026 + br $while-continue|027 end end i32.const 0 @@ -11232,7 +11232,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -11240,7 +11240,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -11248,13 +11248,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 4 i32.shl i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 @@ -11262,19 +11262,19 @@ local.get $8 i32.ne if - local.get $8 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 i64.load $0 local.tee $6 i64.store $0 local.get $2 - local.get $7 + local.get $5 local.get $1 local.get $6 i32.wrap_i64 @@ -11298,23 +11298,23 @@ i32.const 668265263 i32.mul local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $9 i32.xor i32.and i32.const 2 @@ -11331,20 +11331,20 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 16 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $5 i32.store $0 - local.get $7 + local.get $5 if local.get $0 - local.get $7 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -11360,7 +11360,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $7 i32.store $0 offset=12 local.get $0 local.get $0 @@ -11744,23 +11744,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -11834,23 +11834,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -11948,23 +11948,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -12039,23 +12039,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -12221,7 +12221,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|04 + loop $for-loop|03 local.get $2 local.get $4 i32.lt_s @@ -12255,7 +12255,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|04 + br $for-loop|03 end end local.get $8 @@ -12287,12 +12287,7 @@ local.get $8 local.get $0 call $~lib/array/Array#__get - local.set $1 - local.get $3 - i32.load $0 - local.get $3 - i32.load $0 offset=4 - local.get $1 + local.tee $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12314,20 +12309,25 @@ i32.const 668265263 i32.mul local.tee $2 + local.get $2 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul local.tee $2 + local.get $2 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.set $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $2 i32.const 16 i32.shr_u local.get $2 @@ -12434,23 +12434,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -12525,23 +12525,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -12638,23 +12638,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -12728,23 +12728,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -12819,23 +12819,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -12960,7 +12960,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -12968,7 +12968,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -12976,13 +12976,13 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 4 i32.shl i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 @@ -12990,19 +12990,19 @@ local.get $8 i32.ne if - local.get $8 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 i64.load $0 local.tee $6 i64.store $0 local.get $2 - local.get $7 + local.get $5 local.get $1 local.get $6 i32.wrap_i64 @@ -13026,23 +13026,23 @@ i32.const 668265263 i32.mul local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $9 i32.xor i32.and i32.const 2 @@ -13059,20 +13059,20 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 16 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $5 i32.store $0 - local.get $7 + local.get $5 if local.get $0 - local.get $7 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -13088,7 +13088,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $5 + local.get $7 i32.store $0 offset=12 local.get $0 local.get $0 @@ -13472,23 +13472,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -13562,23 +13562,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -13676,23 +13676,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -13767,23 +13767,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -13949,7 +13949,7 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|04 + loop $for-loop|03 local.get $2 local.get $4 i32.lt_s @@ -13983,7 +13983,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|04 + br $for-loop|03 end end local.get $8 @@ -14015,12 +14015,7 @@ local.get $8 local.get $0 call $~lib/array/Array#__get - local.set $1 - local.get $3 - i32.load $0 - local.get $3 - i32.load $0 offset=4 - local.get $1 + local.tee $1 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -14042,20 +14037,25 @@ i32.const 668265263 i32.mul local.tee $2 + local.get $2 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul local.tee $2 + local.get $2 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.set $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $2 i32.const 16 i32.shr_u local.get $2 @@ -14162,23 +14162,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -14253,23 +14253,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -14366,23 +14366,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -14456,23 +14456,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -14547,23 +14547,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -14655,11 +14655,11 @@ (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f32) (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -14688,7 +14688,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -14704,35 +14704,35 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 3 i32.shl i32.add - local.set $5 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $8 + local.get $4 i32.load $0 offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 f32.load $0 - local.tee $4 + local.tee $8 f32.store $0 local.get $2 - local.get $7 + local.get $5 local.get $1 - local.get $4 + local.get $8 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -14743,23 +14743,23 @@ i32.const 668265263 i32.mul local.tee $9 - local.get $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 - local.get $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 - local.get $9 i32.const 16 i32.shr_u + local.get $9 i32.xor i32.and i32.const 2 @@ -14776,20 +14776,20 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 8 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $5 i32.store $0 - local.get $7 + local.get $5 if local.get $0 - local.get $7 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -15599,7 +15599,7 @@ local.get $9 local.get $10 i32.store $0 - loop $for-loop|01 + loop $for-loop|00 local.get $4 local.get $5 i32.lt_s @@ -15633,7 +15633,7 @@ i32.const 1 i32.add local.set $4 - br $for-loop|01 + br $for-loop|00 end end local.get $10 @@ -15705,8 +15705,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find10 - loop $while-continue|011 + block $__inlined_func$~lib/set/Set#find11 + loop $while-continue|012 local.get $1 if local.get $1 @@ -15722,12 +15722,12 @@ local.get $2 f32.eq end - br_if $__inlined_func$~lib/set/Set#find10 + br_if $__inlined_func$~lib/set/Set#find11 local.get $5 i32.const -2 i32.and local.set $1 - br $while-continue|011 + br $while-continue|012 end end i32.const 0 @@ -15814,8 +15814,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find13 - loop $while-continue|014 + block $__inlined_func$~lib/set/Set#find14 + loop $while-continue|015 local.get $1 if local.get $1 @@ -15831,12 +15831,12 @@ local.get $2 f32.eq end - br_if $__inlined_func$~lib/set/Set#find13 + br_if $__inlined_func$~lib/set/Set#find14 local.get $0 i32.const -2 i32.and local.set $1 - br $while-continue|014 + br $while-continue|015 end end i32.const 0 @@ -15894,8 +15894,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find16 - loop $while-continue|017 + block $__inlined_func$~lib/set/Set#find17 + loop $while-continue|018 local.get $1 if local.get $1 @@ -15911,12 +15911,12 @@ local.get $2 f32.eq end - br_if $__inlined_func$~lib/set/Set#find16 + br_if $__inlined_func$~lib/set/Set#find17 local.get $0 i32.const -2 i32.and local.set $1 - br $while-continue|017 + br $while-continue|018 end end i32.const 0 @@ -15996,8 +15996,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find19 - loop $while-continue|020 + block $__inlined_func$~lib/set/Set#find20 + loop $while-continue|021 local.get $1 if local.get $1 @@ -16013,12 +16013,12 @@ local.get $2 f32.eq end - br_if $__inlined_func$~lib/set/Set#find19 + br_if $__inlined_func$~lib/set/Set#find20 local.get $0 i32.const -2 i32.and local.set $1 - br $while-continue|020 + br $while-continue|021 end end i32.const 0 @@ -16075,8 +16075,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find22 - loop $while-continue|023 + block $__inlined_func$~lib/set/Set#find23 + loop $while-continue|024 local.get $1 if local.get $1 @@ -16092,12 +16092,12 @@ local.get $2 f32.eq end - br_if $__inlined_func$~lib/set/Set#find22 + br_if $__inlined_func$~lib/set/Set#find23 local.get $0 i32.const -2 i32.and local.set $1 - br $while-continue|023 + br $while-continue|024 end end i32.const 0 @@ -16155,8 +16155,8 @@ i32.add i32.load $0 local.set $1 - block $__inlined_func$~lib/set/Set#find25 - loop $while-continue|026 + block $__inlined_func$~lib/set/Set#find26 + loop $while-continue|027 local.get $1 if local.get $1 @@ -16172,12 +16172,12 @@ local.get $2 f32.eq end - br_if $__inlined_func$~lib/set/Set#find25 + br_if $__inlined_func$~lib/set/Set#find26 local.get $0 i32.const -2 i32.and local.set $1 - br $while-continue|026 + br $while-continue|027 end end i32.const 0 @@ -16239,12 +16239,12 @@ (func $~lib/set/Set#rehash (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $8 f64) + (local $9 i64) (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16273,7 +16273,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $5 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -16281,7 +16281,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16289,37 +16289,37 @@ i32.store $0 offset=4 local.get $0 i32.load $0 offset=8 - local.tee $9 + local.tee $4 local.get $0 i32.load $0 offset=16 i32.const 4 i32.shl i32.add - local.set $6 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 - local.get $6 - local.get $9 + local.get $4 + local.get $7 i32.ne if - local.get $9 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $9 + local.get $4 f64.load $0 - local.tee $5 + local.tee $8 f64.store $0 local.get $2 - local.get $8 - local.get $1 local.get $5 + local.get $1 + local.get $8 i64.reinterpret_f64 - local.tee $4 + local.tee $9 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16329,7 +16329,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $9 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16341,23 +16341,23 @@ i32.const 668265263 i32.mul local.tee $10 + local.get $10 i32.const 15 i32.shr_u - local.get $10 i32.xor i32.const -2048144777 i32.mul local.tee $10 + local.get $10 i32.const 13 i32.shr_u - local.get $10 i32.xor i32.const -1028477379 i32.mul local.tee $10 + local.get $10 i32.const 16 i32.shr_u - local.get $10 i32.xor i32.and i32.const 2 @@ -16374,20 +16374,20 @@ i32.add local.set $2 end - local.get $9 + local.get $4 i32.const 16 i32.add - local.set $9 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $8 + local.get $5 i32.store $0 - local.get $8 + local.get $5 if local.get $0 - local.get $8 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -16403,7 +16403,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $7 + local.get $6 i32.store $0 offset=12 local.get $0 local.get $0 @@ -16733,8 +16733,8 @@ ) (func $std/set/testNumeric (type $none_=>_none) (local $0 i32) - (local $1 i32) - (local $2 f64) + (local $1 f64) + (local $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -16764,7 +16764,7 @@ local.tee $3 i32.store $0 loop $for-loop|0 - local.get $2 + local.get $1 f64.const 100 f64.lt if @@ -16772,7 +16772,7 @@ i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -16796,23 +16796,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -16832,7 +16832,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq @@ -16858,13 +16858,13 @@ unreachable end local.get $3 - local.get $2 + local.get $1 call $~lib/set/Set#add local.get $3 i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -16888,23 +16888,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -16924,7 +16924,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq @@ -16950,10 +16950,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 f64.const 1 f64.add - local.set $2 + local.set $1 br $for-loop|0 end end @@ -16970,9 +16970,9 @@ unreachable end f64.const 50 - local.set $2 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $1 f64.const 100 f64.lt if @@ -16980,7 +16980,7 @@ i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -17004,23 +17004,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -17040,7 +17040,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq @@ -17067,13 +17067,13 @@ unreachable end local.get $3 - local.get $2 + local.get $1 call $~lib/set/Set#add local.get $3 i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -17097,23 +17097,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -17133,7 +17133,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq @@ -17159,10 +17159,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 f64.const 1 f64.add - local.set $2 + local.set $1 br $for-loop|1 end end @@ -17279,13 +17279,13 @@ i32.store $0 i32.const 0 local.set $0 - loop $for-loop|04 - local.get $1 + loop $for-loop|03 + local.get $2 local.get $5 i32.lt_s if local.get $8 - local.get $1 + local.get $2 i32.const 4 i32.shl i32.add @@ -17309,11 +17309,11 @@ i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|04 + local.set $2 + br $for-loop|03 end end local.get $9 @@ -17345,12 +17345,7 @@ local.get $9 local.get $0 call $~lib/array/Array#__get - local.set $2 - local.get $3 - i32.load $0 - local.get $3 - i32.load $0 offset=4 - local.get $2 + local.tee $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -17373,36 +17368,41 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.set $2 + local.get $3 + i32.load $0 + local.get $3 + i32.load $0 offset=4 + local.get $2 i32.const 16 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load $0 - local.set $1 + local.set $2 block $__inlined_func$~lib/set/Set#find29 loop $while-continue|033 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load $0 offset=8 local.tee $6 i32.const 1 @@ -17410,8 +17410,8 @@ if (result i32) i32.const 0 else - local.get $2 local.get $1 + local.get $2 f64.load $0 f64.eq end @@ -17419,14 +17419,14 @@ local.get $6 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|033 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -17462,9 +17462,9 @@ unreachable end f64.const 0 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 f64.const 50 f64.lt if @@ -17472,7 +17472,7 @@ i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -17496,23 +17496,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -17526,19 +17526,19 @@ if local.get $0 i32.load $0 offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/set/Set#find40 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -17559,13 +17559,13 @@ unreachable end local.get $3 - local.get $2 + local.get $1 call $~lib/set/Set#delete local.get $3 i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -17589,23 +17589,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -17619,19 +17619,19 @@ if local.get $0 i32.load $0 offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/set/Set#find47 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -17650,10 +17650,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 f64.const 1 f64.add - local.set $2 + local.set $1 br $for-loop|3 end end @@ -17670,9 +17670,9 @@ unreachable end f64.const 0 - local.set $2 + local.set $1 loop $for-loop|4 - local.get $2 + local.get $1 f64.const 50 f64.lt if @@ -17680,7 +17680,7 @@ i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -17704,23 +17704,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -17734,19 +17734,19 @@ if local.get $0 i32.load $0 offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/set/Set#find56 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -17766,13 +17766,13 @@ unreachable end local.get $3 - local.get $2 + local.get $1 call $~lib/set/Set#add local.get $3 i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -17796,23 +17796,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -17826,19 +17826,19 @@ if local.get $0 i32.load $0 offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/set/Set#find63 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -17859,13 +17859,13 @@ unreachable end local.get $3 - local.get $2 + local.get $1 call $~lib/set/Set#delete local.get $3 i32.load $0 local.get $3 i32.load $0 offset=4 - local.get $2 + local.get $1 i64.reinterpret_f64 local.tee $4 i32.wrap_i64 @@ -17889,23 +17889,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -17919,19 +17919,19 @@ if local.get $0 i32.load $0 offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 f64.load $0 f64.eq end br_if $__inlined_func$~lib/set/Set#find70 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -17950,10 +17950,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 f64.const 1 f64.add - local.set $2 + local.set $1 br $for-loop|4 end end diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 6b6cc43d4a..238b56b770 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -70,6 +70,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -100,6 +101,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -140,6 +142,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -152,17 +155,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -174,8 +178,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -314,6 +316,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -333,6 +336,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -418,15 +422,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -449,6 +450,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -624,22 +626,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -664,16 +669,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -769,18 +777,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -804,18 +815,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -825,12 +839,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -978,22 +995,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1038,16 +1058,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1102,10 +1125,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1221,6 +1247,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1230,15 +1257,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1299,17 +1324,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1321,22 +1344,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1409,6 +1430,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1469,8 +1491,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1515,8 +1535,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1566,8 +1584,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1649,6 +1665,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1727,6 +1744,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1742,6 +1760,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1832,16 +1851,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1874,16 +1896,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1897,46 +1922,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1973,10 +2005,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2096,30 +2131,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2190,6 +2231,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2202,6 +2244,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2259,6 +2302,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2308,6 +2352,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2532,6 +2577,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2562,6 +2608,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this @@ -2622,6 +2669,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2652,6 +2700,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this @@ -2712,6 +2761,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2742,6 +2792,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/array/Array#set:length_ (type $i32_i32_=>_none) (param $this i32) (param $length_ i32) local.get $this diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index 6790ea6137..e91d6d4cde 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -3,8 +3,8 @@ (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32) (result i32) func)) + (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $none_=>_none (func_subtype func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) @@ -35,8 +35,8 @@ (global $std/staticarray/arr4 (mut i32) (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) - (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $std/staticarray/maxVal (mut i32) (i32.const 0)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/rt/__rtti_base i32 (i32.const 2704)) @@ -127,6 +127,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u + return ) (func $~lib/staticarray/StaticArray#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -152,6 +153,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/staticarray/StaticArray#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $this @@ -204,6 +206,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -216,17 +219,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -238,8 +242,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -382,6 +384,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -401,6 +404,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -486,15 +490,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -521,6 +522,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -696,22 +698,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -736,16 +741,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -841,18 +849,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -876,18 +887,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -897,12 +911,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1050,22 +1067,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1110,16 +1130,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1174,10 +1197,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1293,6 +1319,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1302,15 +1329,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1371,17 +1396,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1393,22 +1416,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1481,6 +1502,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1541,8 +1563,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1587,8 +1607,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1638,8 +1656,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1721,6 +1737,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1799,6 +1816,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1814,6 +1832,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1904,16 +1923,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1946,16 +1968,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1969,46 +1994,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2045,10 +2077,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2168,30 +2203,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2262,6 +2303,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2274,6 +2316,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2336,6 +2379,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -2351,6 +2395,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $std/staticarray/test (type $none_=>_i32) (result i32) (local $0 i32) @@ -2358,6 +2403,7 @@ i32.const 4 i32.const 288 call $~lib/rt/__newBuffer + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2449,6 +2495,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2479,6 +2526,7 @@ i32.const 0 drop local.get $value + return ) (func $~lib/staticarray/StaticArray<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2487,6 +2535,28 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u + return + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $start + local.get $end + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2495,12 +2565,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2571,8 +2641,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2601,6 +2669,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2643,6 +2712,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2651,6 +2721,7 @@ (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array<~lib/string/String>#get:length_ + return ) (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2674,12 +2745,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 3 i32.shr_u + return ) (func $~lib/staticarray/StaticArray#includes (type $i32_f64_i32_=>_i32) (param $this i32) (param $value f64) (param $fromIndex i32) (result i32) (local $length i32) (local $4 i32) (local $5 i32) - (local $6 i32) (local $elem f64) i32.const 1 drop @@ -2720,8 +2791,6 @@ local.get $fromIndex local.get $length i32.lt_s - local.set $6 - local.get $6 if local.get $this local.get $fromIndex @@ -2765,12 +2834,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u + return ) (func $~lib/staticarray/StaticArray#includes (type $i32_f32_i32_=>_i32) (param $this i32) (param $value f32) (param $fromIndex i32) (result i32) (local $length i32) (local $4 i32) (local $5 i32) - (local $6 i32) (local $elem f32) i32.const 1 drop @@ -2811,8 +2880,6 @@ local.get $fromIndex local.get $length i32.lt_s - local.set $6 - local.get $6 if local.get $this local.get $fromIndex @@ -2853,7 +2920,6 @@ (local $length i32) (local $4 i32) (local $5 i32) - (local $6 i32) local.get $this call $~lib/staticarray/StaticArray#get:length local.set $length @@ -2891,8 +2957,6 @@ local.get $fromIndex local.get $length i32.lt_s - local.set $6 - local.get $6 if local.get $this local.get $fromIndex @@ -2914,10 +2978,10 @@ end end i32.const -1 + return ) (func $~lib/staticarray/StaticArray#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) (local $length i32) - (local $4 i32) local.get $this call $~lib/staticarray/StaticArray#get:length local.set $length @@ -2951,8 +3015,6 @@ local.get $fromIndex i32.const 0 i32.ge_s - local.set $4 - local.get $4 if local.get $this local.get $fromIndex @@ -2974,6 +3036,7 @@ end end i32.const -1 + return ) (func $~lib/staticarray/StaticArray#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) block $1of1 @@ -3024,7 +3087,6 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) local.get $start i32.const 0 i32.lt_s @@ -3116,8 +3178,6 @@ local.get $start local.get $end i32.lt_s - local.set $13 - local.get $13 if local.get $ptr local.get $start @@ -3145,12 +3205,36 @@ local.get $end call $~lib/util/bytes/FILL local.get $this + return + ) + (func $~lib/staticarray/StaticArray#fill@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $start i32) (param $end 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 $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $value + local.get $start + local.get $end + call $~lib/staticarray/StaticArray#fill ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) (local $temp i32) @@ -3184,8 +3268,6 @@ local.get $i local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -3226,6 +3308,7 @@ call $~lib/staticarray/StaticArray#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/staticarray/StaticArray#copyWithin (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $target i32) (param $start i32) (param $end i32) (result i32) (local $ptr i32) @@ -3367,6 +3450,27 @@ i32.shl memory.copy $0 $0 local.get $this + return + ) + (func $~lib/staticarray/StaticArray#copyWithin@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $target i32) (param $start i32) (param $end i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $target + local.get $start + local.get $end + call $~lib/staticarray/StaticArray#copyWithin ) (func $start:std/staticarray~anonymous|0 (type $i32_i32_i32_=>_i32) (param $x i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $x @@ -3389,7 +3493,6 @@ (func $~lib/staticarray/StaticArray#forEach (type $i32_i32_=>_none) (param $this i32) (param $fn i32) (local $i i32) (local $len i32) - (local $4 i32) i32.const 0 local.set $i local.get $this @@ -3399,8 +3502,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $this local.get $i @@ -3484,6 +3585,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/array/ensureCapacity (type $i32_i32_i32_i32_=>_none) (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -3615,6 +3717,7 @@ local.get $len call $~lib/array/Array#set:length_ local.get $len + return ) (func $start:std/staticarray~anonymous|3 (type $i32_i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $x @@ -3625,7 +3728,6 @@ (local $acc i32) (local $i i32) (local $len i32) - (local $6 i32) local.get $initialValue local.set $acc i32.const 0 @@ -3637,8 +3739,6 @@ local.get $i local.get $len i32.lt_s - local.set $6 - local.get $6 if local.get $acc local.get $this @@ -3663,6 +3763,7 @@ end end local.get $acc + return ) (func $start:std/staticarray~anonymous|4 (type $i32_i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $x @@ -3672,7 +3773,6 @@ (func $~lib/staticarray/StaticArray#reduceRight (type $i32_i32_i32_=>_i32) (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) (local $i i32) - (local $5 i32) local.get $initialValue local.set $acc local.get $this @@ -3684,8 +3784,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $5 - local.get $5 if local.get $acc local.get $this @@ -3710,6 +3808,7 @@ end end local.get $acc + return ) (func $start:std/staticarray~anonymous|5 (type $i32_i32_i32_=>_i32) (param $x i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $x @@ -3719,7 +3818,6 @@ (func $~lib/staticarray/StaticArray#some (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) - (local $4 i32) i32.const 0 local.set $i local.get $this @@ -3729,8 +3827,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $this local.get $i @@ -3757,6 +3853,7 @@ end end i32.const 0 + return ) (func $start:std/staticarray~anonymous|6 (type $i32_i32_i32_=>_i32) (param $x i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $x @@ -3771,7 +3868,6 @@ (func $~lib/staticarray/StaticArray#every (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) - (local $4 i32) i32.const 0 local.set $i local.get $this @@ -3781,8 +3877,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $this local.get $i @@ -3810,6 +3904,7 @@ end end i32.const 1 + return ) (func $start:std/staticarray~anonymous|8 (type $i32_i32_i32_=>_i32) (param $x i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $x @@ -3824,7 +3919,6 @@ (func $~lib/staticarray/StaticArray#findIndex (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) - (local $4 i32) i32.const 0 local.set $i local.get $this @@ -3834,8 +3928,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $this local.get $i @@ -3862,6 +3954,7 @@ end end i32.const -1 + return ) (func $start:std/staticarray~anonymous|10 (type $i32_i32_i32_=>_i32) (param $x i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $x @@ -3875,7 +3968,6 @@ ) (func $~lib/staticarray/StaticArray#findLastIndex (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $i i32) - (local $3 i32) local.get $this call $~lib/staticarray/StaticArray#get:length i32.const 1 @@ -3885,8 +3977,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $3 - local.get $3 if local.get $this local.get $i @@ -3913,6 +4003,7 @@ end end i32.const -1 + return ) (func $start:std/staticarray~anonymous|12 (type $i32_i32_i32_=>_i32) (param $x i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $x @@ -3922,14 +4013,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -3961,8 +4049,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -4006,8 +4092,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -4056,8 +4140,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -4111,11 +4193,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -4175,8 +4254,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -4191,8 +4268,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -4259,8 +4334,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -4271,6 +4344,7 @@ end end local.get $j + return ) (func $~lib/util/sort/nodePower (type $i32_i32_i32_i32_i32_=>_i32) (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) @@ -4321,15 +4395,13 @@ i64.xor i32.wrap_i64 i32.clz + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -4348,8 +4420,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -4380,8 +4450,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -4410,8 +4478,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -4483,28 +4549,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -4627,12 +4689,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.0 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.0 + end i32.const 2 i32.add local.set $lgPlus2 @@ -4655,8 +4720,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -4696,13 +4759,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -4721,8 +4784,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -4745,15 +4806,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -4772,16 +4833,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -4794,7 +4853,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -4808,17 +4867,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -4846,29 +4905,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -4880,10 +4937,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -4899,6 +4956,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -4906,8 +4964,6 @@ i32.sub ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -4918,8 +4974,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -4933,8 +4987,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -5020,7 +5072,6 @@ (func $~lib/staticarray/StaticArray#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -5037,8 +5088,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -5088,7 +5137,6 @@ (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -5105,8 +5153,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -5140,7 +5186,6 @@ (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -5158,8 +5203,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -5392,7 +5435,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5416,12 +5458,12 @@ end if i32.const -1 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 return end local.get $fromIndex @@ -5444,8 +5486,6 @@ local.get $fromIndex local.get $length i32.lt_s - local.set $6 - local.get $6 if local.get $this local.get $fromIndex @@ -5453,21 +5493,21 @@ i32.shl i32.add i32.load $0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 local.get $value call $~lib/string/String.__eq if local.get $fromIndex - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 return end local.get $fromIndex @@ -5478,12 +5518,13 @@ end end i32.const -1 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 + return ) (func $~lib/staticarray/StaticArray<~lib/string/String>#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $1 i32) @@ -5509,6 +5550,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $start:std/staticarray (type $none_=>_none) (local $0 i32) @@ -5564,9 +5606,6 @@ (local $50 i32) (local $51 i32) (local $52 i32) - (local $53 i32) - (local $54 i32) - (local $55 i32) global.get $~lib/memory/__stack_pointer i32.const 96 i32.sub @@ -5577,11 +5616,11 @@ i32.const 96 memory.fill $0 global.get $std/staticarray/arr1 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -5596,11 +5635,11 @@ unreachable end global.get $std/staticarray/arr1 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -5614,20 +5653,20 @@ unreachable end global.get $std/staticarray/arr1 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr1 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -5657,11 +5696,11 @@ unreachable end global.get $std/staticarray/arr2 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -5676,11 +5715,11 @@ unreachable end global.get $std/staticarray/arr2 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -5694,20 +5733,20 @@ unreachable end global.get $std/staticarray/arr2 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr2 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -5741,11 +5780,11 @@ call $std/staticarray/test global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -5760,11 +5799,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -5779,11 +5818,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -5798,11 +5837,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -5816,20 +5855,20 @@ unreachable end global.get $std/staticarray/arr3 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr3 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -5846,11 +5885,11 @@ call $std/staticarray/test global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -5913,8 +5952,6 @@ local.get $3 call $~lib/staticarray/StaticArray#get:length i32.lt_s - local.set $5 - local.get $5 if local.get $3 local.get $4 @@ -5943,16 +5980,16 @@ i32.const 7 i32.const 704 call $~lib/rt/__newArray - local.tee $8 + local.tee $7 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 call $~lib/staticarray/StaticArray.fromArray - local.tee $9 + local.tee $8 i32.store $0 offset=16 - local.get $9 - call $~lib/staticarray/StaticArray#get:length local.get $8 + call $~lib/staticarray/StaticArray#get:length + local.get $7 call $~lib/array/Array#get:length i32.eq i32.eqz @@ -5965,20 +6002,18 @@ unreachable end i32.const 0 - local.set $10 + local.set $9 loop $for-loop|1 - local.get $10 - local.get $8 + local.get $9 + local.get $7 call $~lib/array/Array#get:length i32.lt_s - local.set $11 - local.get $11 if + local.get $8 local.get $9 - local.get $10 call $~lib/staticarray/StaticArray#__get - local.get $8 - local.get $10 + local.get $7 + local.get $9 call $~lib/array/Array#__get i32.eq i32.eqz @@ -5990,10 +6025,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $9 i32.const 1 i32.add - local.set $10 + local.set $9 br $for-loop|1 end end @@ -6003,15 +6038,15 @@ i32.const 7 i32.const 800 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray.fromArray - local.tee $9 + local.tee $8 i32.store $0 offset=16 - local.get $9 + local.get $8 call $~lib/staticarray/StaticArray#get:length i32.const 0 i32.eq @@ -6029,23 +6064,23 @@ i32.const 4 i32.const 832 call $~lib/rt/__newBuffer - local.tee $15 + local.tee $13 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $13 i32.const 4 i32.const 4 i32.const 864 call $~lib/rt/__newBuffer - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $17 + local.tee $15 i32.store $0 offset=28 - local.get $17 + local.get $15 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -6059,23 +6094,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $13 i32.const 0 i32.const 4 i32.const 896 call $~lib/rt/__newBuffer - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $17 + local.tee $15 i32.store $0 offset=28 - local.get $17 - call $~lib/staticarray/StaticArray#get:length local.get $15 call $~lib/staticarray/StaticArray#get:length + local.get $13 + call $~lib/staticarray/StaticArray#get:length i32.eq i32.eqz if @@ -6091,18 +6126,20 @@ i32.const 8 i32.const 1104 call $~lib/rt/__newBuffer - local.tee $20 + local.tee $18 i32.store $0 offset=32 global.get $~lib/memory/__stack_pointer - local.get $20 + local.get $18 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $21 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs + local.tee $19 i32.store $0 offset=36 - local.get $21 + local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $20 + local.get $18 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -6115,31 +6152,29 @@ unreachable end i32.const 0 - local.set $22 + local.set $20 loop $for-loop|2 - local.get $22 local.get $20 + local.get $18 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.lt_s - local.set $23 - local.get $23 if + local.get $18 local.get $20 - local.get $22 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 - local.get $21 - local.get $22 + local.get $52 + local.get $19 + local.get $20 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6150,21 +6185,21 @@ call $~lib/builtins/abort unreachable end - local.get $22 + local.get $20 i32.const 1 i32.add - local.set $22 + local.set $20 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $20 + local.get $18 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $21 + local.tee $19 i32.store $0 offset=36 - local.get $21 + local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 2 i32.eq @@ -6177,20 +6212,20 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $19 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 960 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6201,20 +6236,20 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $19 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 992 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6226,15 +6261,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $20 + local.get $18 i32.const 1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $21 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs + local.tee $19 i32.store $0 offset=36 - local.get $21 + local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $20 + local.get $18 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.sub @@ -6249,15 +6286,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $20 + local.get $18 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $21 + local.tee $19 i32.store $0 offset=36 - local.get $21 + local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $20 + local.get $18 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -6270,13 +6307,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $20 + local.get $18 i32.const 100 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $21 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs + local.tee $19 i32.store $0 offset=36 - local.get $21 + local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 0 i32.eq @@ -6290,13 +6329,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $20 + local.get $18 i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $21 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs + local.tee $19 i32.store $0 offset=36 - local.get $21 + local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.eq @@ -6309,20 +6350,20 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $19 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6334,13 +6375,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $20 + local.get $18 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $21 + local.tee $19 i32.store $0 offset=36 - local.get $21 + local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 0 i32.eq @@ -6354,13 +6395,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $20 + local.get $18 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $21 + local.tee $19 i32.store $0 offset=36 - local.get $21 + local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.eq @@ -6373,20 +6414,20 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $19 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 992 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6402,26 +6443,26 @@ i32.const 8 i32.const 1280 call $~lib/rt/__newBuffer - local.tee $25 + local.tee $22 i32.store $0 offset=40 global.get $~lib/memory/__stack_pointer - local.get $25 + local.get $22 i32.const 0 i32.const 2 i32.const 9 i32.const 1328 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $28 + local.tee $25 i32.store $0 offset=44 - local.get $28 - call $~lib/array/Array<~lib/string/String>#get:length local.get $25 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $22 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -6436,23 +6477,23 @@ i32.const 1 drop global.get $~lib/memory/__stack_pointer - local.get $25 + local.get $22 i32.const 1 i32.const 2 i32.const 9 i32.const 1392 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $28 + local.tee $25 i32.store $0 offset=44 - local.get $28 - call $~lib/array/Array<~lib/string/String>#get:length local.get $25 + call $~lib/array/Array<~lib/string/String>#get:length + local.get $22 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.add @@ -6473,15 +6514,15 @@ i32.const 8 i32.const 1424 call $~lib/rt/__newBuffer - local.tee $32 + local.tee $29 i32.store $0 offset=48 - local.get $32 + local.get $29 i32.const 960 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -6495,13 +6536,13 @@ call $~lib/builtins/abort unreachable end - local.get $32 + local.get $29 i32.const 1360 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -6515,13 +6556,13 @@ call $~lib/builtins/abort unreachable end - local.get $32 + local.get $29 i32.const 1056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -6535,13 +6576,13 @@ call $~lib/builtins/abort unreachable end - local.get $32 + local.get $29 i32.const 1056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -6559,11 +6600,11 @@ i32.const 10 i32.const 1472 call $~lib/rt/__newBuffer - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 f64.const nan:0x8000000000000 i32.const 0 call $~lib/staticarray/StaticArray#includes @@ -6582,11 +6623,11 @@ i32.const 11 i32.const 1504 call $~lib/rt/__newBuffer - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 f32.const nan:0x400000 i32.const 0 call $~lib/staticarray/StaticArray#includes @@ -6606,9 +6647,9 @@ i32.const 4 i32.const 1536 call $~lib/rt/__newBuffer - local.tee $36 + local.tee $33 i32.store $0 offset=52 - local.get $36 + local.get $33 i32.const 2 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -6623,7 +6664,7 @@ call $~lib/builtins/abort unreachable end - local.get $36 + local.get $33 i32.const 7 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -6638,7 +6679,7 @@ call $~lib/builtins/abort unreachable end - local.get $36 + local.get $33 i32.const 9 i32.const 2 call $~lib/staticarray/StaticArray#indexOf @@ -6653,7 +6694,7 @@ call $~lib/builtins/abort unreachable end - local.get $36 + local.get $33 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#indexOf @@ -6668,7 +6709,7 @@ call $~lib/builtins/abort unreachable end - local.get $36 + local.get $33 i32.const 2 i32.const -3 call $~lib/staticarray/StaticArray#indexOf @@ -6688,9 +6729,9 @@ i32.const 4 i32.const 1568 call $~lib/rt/__newBuffer - local.tee $38 + local.tee $35 i32.store $0 offset=56 - local.get $38 + local.get $35 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -6707,7 +6748,7 @@ call $~lib/builtins/abort unreachable end - local.get $38 + local.get $35 i32.const 7 i32.const 1 global.set $~argumentsLength @@ -6724,7 +6765,7 @@ call $~lib/builtins/abort unreachable end - local.get $38 + local.get $35 i32.const 2 i32.const 3 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6739,7 +6780,7 @@ call $~lib/builtins/abort unreachable end - local.get $38 + local.get $35 i32.const 2 i32.const 2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6754,7 +6795,7 @@ call $~lib/builtins/abort unreachable end - local.get $38 + local.get $35 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6769,7 +6810,7 @@ call $~lib/builtins/abort unreachable end - local.get $38 + local.get $35 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6789,27 +6830,27 @@ i32.const 8 i32.const 1712 call $~lib/rt/__newBuffer - local.tee $40 + local.tee $37 i32.store $0 offset=60 - local.get $40 + local.get $37 i32.const 1776 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=64 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1808 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6820,25 +6861,25 @@ call $~lib/builtins/abort unreachable end - local.get $40 + local.get $37 i32.const 1744 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=64 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1856 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6849,25 +6890,25 @@ call $~lib/builtins/abort unreachable end - local.get $40 + local.get $37 i32.const 1904 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=64 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 1936 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6878,25 +6919,25 @@ call $~lib/builtins/abort unreachable end - local.get $40 + local.get $37 i32.const 1984 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=64 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 + local.get $52 i32.const 2016 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6907,26 +6948,26 @@ call $~lib/builtins/abort unreachable end - local.get $40 + local.get $37 i32.const 1776 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=64 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 - local.get $55 - local.get $40 + local.get $52 + local.get $37 call $~lib/staticarray/StaticArray<~lib/string/String>#toString - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -6942,15 +6983,17 @@ i32.const 4 i32.const 2080 call $~lib/rt/__newBuffer - local.tee $42 + local.tee $39 i32.store $0 offset=68 - local.get $42 + local.get $39 i32.const 1 i32.const 1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/staticarray/StaticArray#fill + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray#fill@varargs drop - local.get $42 + local.get $39 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 0 @@ -6964,7 +7007,7 @@ call $~lib/builtins/abort unreachable end - local.get $42 + local.get $39 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -6983,12 +7026,12 @@ i32.const 4 i32.const 2112 call $~lib/rt/__newBuffer - local.tee $44 + local.tee $41 i32.store $0 offset=72 - local.get $44 + local.get $41 call $~lib/staticarray/StaticArray#reverse drop - local.get $44 + local.get $41 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7002,7 +7045,7 @@ call $~lib/builtins/abort unreachable end - local.get $44 + local.get $41 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7016,7 +7059,7 @@ call $~lib/builtins/abort unreachable end - local.get $44 + local.get $41 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -7035,15 +7078,17 @@ i32.const 4 i32.const 2144 call $~lib/rt/__newBuffer - local.tee $46 + local.tee $43 i32.store $0 offset=76 - local.get $46 + local.get $43 i32.const 0 i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/staticarray/StaticArray#copyWithin + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/staticarray/StaticArray#copyWithin@varargs drop - local.get $46 + local.get $43 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7057,7 +7102,7 @@ call $~lib/builtins/abort unreachable end - local.get $46 + local.get $43 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -7071,7 +7116,7 @@ call $~lib/builtins/abort unreachable end - local.get $46 + local.get $43 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7085,7 +7130,7 @@ call $~lib/builtins/abort unreachable end - local.get $46 + local.get $43 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7099,7 +7144,7 @@ call $~lib/builtins/abort unreachable end - local.get $46 + local.get $43 i32.const 4 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -7118,20 +7163,20 @@ i32.const 4 i32.const 2192 call $~lib/rt/__newBuffer - local.tee $48 + local.tee $45 i32.store $0 offset=80 global.get $~lib/memory/__stack_pointer - local.get $48 + local.get $45 i32.const 2224 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#map - local.tee $49 + local.tee $46 i32.store $0 offset=84 - local.get $49 + local.get $46 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -7145,7 +7190,7 @@ call $~lib/builtins/abort unreachable end - local.get $49 + local.get $46 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -7159,7 +7204,7 @@ call $~lib/builtins/abort unreachable end - local.get $49 + local.get $46 i32.const 2 call $~lib/array/Array#__get i32.const 4 @@ -7173,13 +7218,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2256 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#forEach global.get $std/staticarray/maxVal i32.const 3 @@ -7194,17 +7239,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $48 + local.get $45 i32.const 2288 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#filter - local.tee $50 + local.tee $47 i32.store $0 offset=88 - local.get $50 + local.get $47 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -7217,7 +7262,7 @@ call $~lib/builtins/abort unreachable end - local.get $50 + local.get $47 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -7231,7 +7276,7 @@ call $~lib/builtins/abort unreachable end - local.get $50 + local.get $47 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -7245,17 +7290,17 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2320 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#reduce - local.set $51 - local.get $51 + local.set $48 + local.get $48 i32.const 6 i32.eq i32.eqz @@ -7267,17 +7312,17 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2352 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#reduceRight - local.set $52 - local.get $52 + local.set $49 + local.get $49 i32.const 6 i32.eq i32.eqz @@ -7289,13 +7334,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2384 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#some i32.eqz if @@ -7306,13 +7351,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2416 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#some i32.eqz i32.eqz @@ -7324,13 +7369,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2448 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#every i32.eqz if @@ -7341,13 +7386,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2480 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#every i32.eqz i32.eqz @@ -7359,13 +7404,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2512 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#findIndex i32.const 1 i32.eq @@ -7378,13 +7423,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2544 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#findIndex i32.const -1 i32.eq @@ -7397,13 +7442,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2576 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#findLastIndex i32.const 1 i32.eq @@ -7416,13 +7461,13 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $45 i32.const 2608 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store $0 offset=24 - local.get $55 + local.get $52 call $~lib/staticarray/StaticArray#findLastIndex i32.const -1 i32.eq @@ -7440,15 +7485,15 @@ i32.const 4 i32.const 2640 call $~lib/rt/__newBuffer - local.tee $54 + local.tee $51 i32.store $0 offset=92 - local.get $54 + local.get $51 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray#sort@varargs drop - local.get $54 + local.get $51 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 0 @@ -7462,7 +7507,7 @@ call $~lib/builtins/abort unreachable end - local.get $54 + local.get $51 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -7476,7 +7521,7 @@ call $~lib/builtins/abort unreachable end - local.get $54 + local.get $51 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7490,7 +7535,7 @@ call $~lib/builtins/abort unreachable end - local.get $54 + local.get $51 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7619,6 +7664,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $~lib/rt/__newArray (type $i32_i32_i32_i32_=>_i32) (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) @@ -7671,6 +7717,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/staticarray/StaticArray.fromArray (type $i32_=>_i32) (param $source i32) (result i32) (local $length i32) @@ -7712,6 +7759,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $sourceLen i32) @@ -7758,6 +7806,8 @@ i32.const 2 i32.shl local.set $sourceSize + local.get $this + local.set $out i32.const 0 drop i32.const 1 @@ -7797,6 +7847,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $10 + return ) (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $length i32) @@ -7815,9 +7866,8 @@ (local $out i32) (local $outStart i32) (local $off i32) - (local $19 i32) (local $ref i32) - (local $21 i32) + (local $20 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7900,6 +7950,8 @@ i32.const 2 i32.shl local.set $size + local.get $this + local.set $out i32.const 0 drop i32.const 1 @@ -7920,8 +7972,6 @@ local.get $off local.get $size i32.lt_u - local.set $19 - local.get $19 if local.get $sourceStart local.get $off @@ -7945,12 +7995,13 @@ end end local.get $out - local.set $21 + local.set $20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $21 + local.get $20 + return ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -8006,6 +8057,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $sourceLen i32) @@ -8017,13 +8069,11 @@ (local $otherStart i32) (local $thisStart i32) (local $offset i32) - (local $11 i32) (local $ref i32) (local $otherSize i32) - (local $offset|14 i32) + (local $offset|13 i32) + (local $ref|14 i32) (local $15 i32) - (local $ref|16 i32) - (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8059,6 +8109,8 @@ i32.const 2 i32.shl local.set $sourceSize + local.get $this + local.set $out i32.const 1 drop global.get $~lib/memory/__stack_pointer @@ -8085,8 +8137,6 @@ local.get $offset local.get $sourceSize i32.lt_u - local.set $11 - local.get $11 if local.get $thisStart local.get $offset @@ -8118,42 +8168,41 @@ i32.shl local.set $otherSize i32.const 0 - local.set $offset|14 + local.set $offset|13 loop $for-loop|1 - local.get $offset|14 + local.get $offset|13 local.get $otherSize i32.lt_u - local.set $15 - local.get $15 if local.get $otherStart - local.get $offset|14 + local.get $offset|13 i32.add i32.load $0 - local.set $ref|16 + local.set $ref|14 local.get $outStart - local.get $offset|14 + local.get $offset|13 i32.add - local.get $ref|16 + local.get $ref|14 i32.store $0 local.get $out - local.get $ref|16 + local.get $ref|14 i32.const 1 call $~lib/rt/itcms/__link - local.get $offset|14 + local.get $offset|13 i32.const 4 i32.add - local.set $offset|14 + local.set $offset|13 br $for-loop|1 end end local.get $out - local.set $17 + local.set $15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $17 + local.get $15 + return ) (func $~lib/util/string/joinStringArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -8161,14 +8210,12 @@ (local $estLen i32) (local $value i32) (local $i i32) - (local $8 i32) (local $offset i32) (local $sepLen i32) (local $result i32) - (local $i|12 i32) - (local $13 i32) + (local $i|11 i32) (local $valueLen i32) - (local $15 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8189,12 +8236,12 @@ i32.lt_s if i32.const 1744 - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 return end local.get $lastIndex @@ -8211,12 +8258,12 @@ else i32.const 1744 end - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 return end i32.const 0 @@ -8227,8 +8274,6 @@ local.get $i local.get $length i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -8274,17 +8319,15 @@ local.tee $result i32.store $0 offset=8 i32.const 0 - local.set $i|12 + local.set $i|11 loop $for-loop|1 - local.get $i|12 + local.get $i|11 local.get $lastIndex i32.lt_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $dataStart - local.get $i|12 + local.get $i|11 i32.const 2 i32.shl i32.add @@ -8330,10 +8373,10 @@ i32.add local.set $offset end - local.get $i|12 + local.get $i|11 i32.const 1 i32.add - local.set $i|12 + local.set $i|11 br $for-loop|1 end end @@ -8363,21 +8406,21 @@ memory.copy $0 $0 end local.get $result - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 + return ) (func $~lib/staticarray/StaticArray#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $len i32) (local $out i32) (local $outStart i32) (local $i i32) - (local $6 i32) (local $result i32) - (local $8 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8406,8 +8449,6 @@ local.get $i local.get $len i32.lt_s - local.set $6 - local.get $6 if local.get $this local.get $i @@ -8440,20 +8481,20 @@ end end local.get $out - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 + return ) (func $~lib/staticarray/StaticArray#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $result i32) (local $i i32) (local $len i32) - (local $5 i32) (local $value i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8479,8 +8520,6 @@ local.get $i local.get $len i32.lt_s - local.set $5 - local.get $5 if local.get $this local.get $i @@ -8511,12 +8550,13 @@ end end local.get $result - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 + return ) (func $~lib/staticarray/StaticArray#sort@varargs (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index cfa8e4e5ea..a7b6788a3e 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -1739,6 +1739,28 @@ i32.add i32.load $0 ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> + ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -1956,6 +1978,227 @@ i32.const 0 i32.ge_s ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + local.tee $4 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 2 + i32.shr_u + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3800 + i32.lt_s + if + i32.const 36592 + i32.const 36640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + block $__inlined_func$~lib/util/string/joinStringArray + local.get $6 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2768 + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + local.get $7 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load $0 + local.tee $0 + i32.store $0 + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2768 + local.get $0 + select + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $5 + i32.store $0 offset=4 + local.get $5 + if + local.get $2 + local.get $5 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $2 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $1 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + local.get $7 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 offset=8 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $5 + i32.store $0 offset=4 + local.get $5 + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $5 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 1 + i32.shl + memory.copy $0 $0 + local.get $3 + local.get $5 + i32.add + local.set $3 + end + local.get $6 + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $6 + i32.const 1 + i32.shl + memory.copy $0 $0 + local.get $3 + local.get $6 + i32.add + local.set $3 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $1 + i32.store $0 offset=4 + local.get $1 + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const -2 + i32.and + memory.copy $0 $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) (func $start:std/staticarray~anonymous|0 (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 @@ -2832,17 +3075,17 @@ i32.sub i32.load $0 offset=16 i32.add - local.set $2 + local.set $1 loop $while-continue|0 local.get $0 - local.get $2 + local.get $1 i32.lt_u if local.get $0 i32.load $0 - local.tee $1 + local.tee $2 if - local.get $1 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $0 @@ -2902,17 +3145,17 @@ i32.const 2 i32.shl i32.add - local.set $3 + local.set $2 loop $while-continue|0 local.get $1 - local.get $3 + local.get $2 i32.lt_u if local.get $1 i32.load $0 - local.tee $2 + local.tee $3 if - local.get $2 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $1 @@ -2922,7 +3165,14 @@ br $while-continue|0 end end - br $folding-inner1 + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end return end @@ -2954,16 +3204,16 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $3 i32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) + (local $11 f32) + (local $12 f64) (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 96 @@ -2975,11 +3225,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i32.const 0 i32.const 96 memory.fill $0 - local.get $0 + local.get $2 i32.const 1056 i32.store $0 i32.const 1056 @@ -3136,17 +3386,17 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.const 1312 i32.const 12 memory.copy $0 $0 - local.get $0 + local.get $2 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $2 i32.store $0 - local.get $0 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -3161,9 +3411,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $2 i32.store $0 - local.get $0 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3178,9 +3428,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $2 i32.store $0 - local.get $0 + local.get $2 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -3195,9 +3445,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $2 i32.store $0 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3215,16 +3465,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $2 i32.store $0 - local.get $0 + local.get $2 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $2 i32.store $0 - local.get $0 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -3240,17 +3490,17 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.const 1312 i32.const 12 memory.copy $0 $0 - local.get $0 + local.get $2 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $2 i32.store $0 - local.get $0 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3267,24 +3517,24 @@ i32.const 8 i32.const 6 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store $0 offset=4 - local.get $0 + local.get $2 i32.const 0 call $std/staticarray/Ref#constructor call $~lib/staticarray/StaticArray#__uset - local.get $0 + local.get $2 i32.const 1 call $std/staticarray/Ref#constructor call $~lib/staticarray/StaticArray#__uset - local.get $0 + local.get $2 global.set $std/staticarray/arr4 i32.const 0 global.set $std/staticarray/arr3 i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3293,23 +3543,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $2 i32.const 0 i32.store $0 - local.get $6 + local.get $2 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $6 + local.get $3 + local.get $2 i32.store $0 offset=8 - local.get $6 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3326,8 +3576,8 @@ unreachable end loop $for-loop|0 - local.get $1 - local.get $6 + local.get $0 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3335,8 +3585,8 @@ i32.shr_u i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -3346,10 +3596,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -3358,16 +3608,16 @@ i32.const 7 i32.const 1728 call $~lib/rt/__newArray - local.tee $0 + local.tee $2 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 call $~lib/staticarray/StaticArray.fromArray - local.tee $6 + local.tee $0 i32.store $0 offset=16 - local.get $0 + local.get $2 i32.load $0 offset=12 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3382,18 +3632,16 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 loop $for-loop|1 local.get $1 - local.get $0 + local.get $2 i32.load $0 offset=12 i32.lt_s if - local.get $6 + local.get $0 local.get $1 call $~lib/staticarray/StaticArray#__get - local.get $0 + local.get $2 local.get $1 call $~lib/array/Array#__get i32.ne @@ -3413,17 +3661,17 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 i32.const 7 i32.const 1824 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 local.get $0 + i32.store $0 local.get $1 + local.get $0 call $~lib/staticarray/StaticArray.fromArray local.tee $0 i32.store $0 offset=16 @@ -3446,28 +3694,28 @@ i32.const 8 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 1856 i64.load $0 align=1 i64.store $0 align=1 local.get $0 - local.get $1 + local.get $2 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.const 1888 i32.load $0 align=1 i32.store $0 align=1 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store $0 offset=24 local.get $0 + i32.store $0 offset=24 local.get $1 - local.get $6 + local.get $2 + local.get $0 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> local.tee $0 i32.store $0 offset=28 @@ -3488,20 +3736,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.const 1920 i32.const 0 memory.copy $0 $0 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store $0 offset=24 local.get $0 + i32.store $0 offset=24 local.get $1 - local.get $6 + local.get $2 + local.get $0 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> local.tee $0 i32.store $0 offset=28 @@ -3511,7 +3759,7 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3531,27 +3779,28 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.const 2128 i32.const 20 memory.copy $0 $0 local.get $0 - local.get $6 + local.get $4 i32.store $0 offset=32 + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 0 - i32.const 2147483647 - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs + local.tee $3 i32.store $0 offset=36 - local.get $0 + local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.get $6 + local.get $4 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3570,7 +3819,7 @@ local.set $1 loop $for-loop|2 local.get $1 - local.get $6 + local.get $4 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3578,22 +3827,22 @@ i32.shr_u i32.lt_s if - local.get $6 + local.get $4 local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store $0 - local.get $0 + local.get $3 local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $8 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store $0 offset=24 - local.get $7 - local.get $8 + local.get $2 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3612,13 +3861,13 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $0 + local.tee $2 i32.store $0 offset=36 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3634,15 +3883,15 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $0 local.get $1 i32.store $0 - local.get $7 + local.get $0 i32.const 1984 i32.store $0 offset=24 local.get $1 @@ -3657,18 +3906,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 + local.tee $0 local.get $1 + i32.store $0 + local.get $0 i32.const 2016 i32.store $0 offset=24 - local.get $0 + local.get $1 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -3680,14 +3929,15 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 1 - i32.const 2147483647 - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs local.tee $0 i32.store $0 offset=36 - local.get $6 + local.get $4 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3711,7 +3961,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3723,7 +3973,7 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.get $6 + local.get $4 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3738,11 +3988,12 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 100 - i32.const 2147483647 - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs local.tee $0 i32.store $0 offset=36 local.get $0 @@ -3759,11 +4010,12 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const -1 - i32.const 2147483647 - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs local.tee $0 i32.store $0 offset=36 local.get $0 @@ -3785,15 +4037,15 @@ local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 + local.tee $0 local.get $1 + i32.store $0 + local.get $0 i32.const 2080 i32.store $0 offset=24 - local.get $0 + local.get $1 i32.const 2080 call $~lib/string/String.__eq i32.eqz @@ -3806,7 +4058,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3827,7 +4079,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -3852,15 +4104,15 @@ local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 + local.tee $0 local.get $1 + i32.store $0 + local.get $0 i32.const 2016 i32.store $0 offset=24 - local.get $0 + local.get $1 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -3877,32 +4129,32 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 2304 i32.const 20 memory.copy $0 $0 local.get $0 - local.get $1 + local.get $2 i32.store $0 offset=40 global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $6 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store $0 offset=24 local.get $0 + i32.store $0 offset=24 local.get $1 - local.get $6 + local.get $2 + local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> local.tee $0 i32.store $0 offset=44 local.get $0 i32.load $0 offset=12 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3918,24 +4170,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 1 i32.const 9 i32.const 2416 call $~lib/rt/__newArray - local.set $6 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store $0 offset=24 local.get $0 + i32.store $0 offset=24 local.get $1 - local.get $6 + local.get $2 + local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> local.tee $0 i32.store $0 offset=44 local.get $0 i32.load $0 offset=12 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 @@ -3953,21 +4205,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2448 i32.const 20 memory.copy $0 $0 - local.get $0 local.get $1 + local.get $0 i32.store $0 offset=48 global.get $~lib/memory/__stack_pointer i32.const 1984 i32.store $0 offset=24 - local.get $1 + local.get $0 i32.const 1984 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -3984,7 +4236,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2384 i32.store $0 offset=24 - local.get $1 + local.get $0 i32.const 2384 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -3999,7 +4251,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store $0 offset=24 - local.get $1 + local.get $0 i32.const 2080 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4014,7 +4266,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store $0 offset=24 - local.get $1 + local.get $0 i32.const 2080 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4032,50 +4284,50 @@ i32.const 8 i32.const 10 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.const 2496 i64.load $0 align=1 i64.store $0 align=1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store $0 i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $0 + local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 3 i32.shr_u - local.tee $6 + local.tee $2 i32.eqz - local.tee $7 - local.get $7 + local.tee $1 + local.get $1 i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|0 - local.get $1 - local.get $6 + local.get $0 + local.get $2 i32.lt_s if i32.const 1 + local.get $3 local.get $0 - local.get $1 i32.const 3 i32.shl i32.add f64.load $0 - local.tee $4 - local.get $4 + local.tee $12 + local.get $12 f64.ne br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end @@ -4094,51 +4346,51 @@ i32.const 4 i32.const 11 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.const 2528 i32.load $0 align=1 i32.store $0 align=1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store $0 i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $0 + local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $6 + local.tee $2 i32.eqz - local.tee $7 - local.get $7 + local.tee $1 + local.get $1 i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - loop $while-continue|09 - local.get $1 - local.get $6 + loop $while-continue|02 + local.get $0 + local.get $2 i32.lt_s if i32.const 1 + local.get $3 local.get $0 - local.get $1 i32.const 2 i32.shl i32.add f32.load $0 - local.tee $3 - local.get $3 + local.tee $11 + local.get $11 f32.ne br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|09 + local.set $0 + br $while-continue|02 end end i32.const 0 @@ -4157,36 +4409,36 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.const 2560 i32.const 12 memory.copy $0 $0 local.get $0 - local.get $6 + local.get $3 i32.store $0 offset=52 i32.const 0 local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $6 + local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $7 + local.tee $2 i32.eqz - local.get $7 + local.get $2 i32.eqz i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf - loop $while-continue|01 + loop $while-continue|00 local.get $1 - local.get $7 + local.get $2 i32.lt_s if - local.get $6 + local.get $3 local.get $1 local.tee $0 i32.const 2 @@ -4200,7 +4452,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|01 + br $while-continue|00 end end i32.const -1 @@ -4219,25 +4471,25 @@ local.set $1 i32.const -1 local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf2 - local.get $6 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf1 + local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $7 + local.tee $2 i32.eqz - local.get $7 + local.get $2 i32.eqz i32.or - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf2 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf1 loop $while-continue|03 local.get $1 - local.get $7 + local.get $2 i32.lt_s if - local.get $6 + local.get $3 local.get $1 local.tee $0 i32.const 2 @@ -4246,7 +4498,7 @@ i32.load $0 i32.const 7 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf2 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf1 local.get $0 i32.const 1 i32.add @@ -4273,25 +4525,25 @@ i32.const -1 local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#indexOf4 - local.get $6 + local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $7 + local.tee $2 i32.eqz - local.get $7 + local.get $2 i32.const 2 i32.le_u i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf4 loop $while-continue|05 local.get $1 - local.get $7 + local.get $2 i32.lt_s if - local.get $6 + local.get $3 local.get $1 local.tee $0 i32.const 2 @@ -4325,31 +4577,31 @@ i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf6 - local.get $6 + local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf6 - local.get $0 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select local.set $1 loop $while-continue|07 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $6 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -4382,31 +4634,31 @@ i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf8 - local.get $6 + local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf8 - local.get $0 + local.get $2 i32.const 3 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select local.set $1 - loop $while-continue|010 - local.get $0 + loop $while-continue|09 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $6 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -4419,7 +4671,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|010 + br $while-continue|09 end end i32.const -1 @@ -4439,19 +4691,19 @@ i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.const 2592 i32.const 16 memory.copy $0 $0 local.get $0 - local.get $6 + local.get $2 i32.store $0 offset=56 i32.const 1 global.set $~argumentsLength i32.const -1 local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf - local.get $6 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 @@ -4471,12 +4723,12 @@ i32.lt_s select local.set $0 - loop $while-continue|00 + loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if - local.get $6 + local.get $2 local.get $0 i32.const 2 i32.shl @@ -4489,7 +4741,7 @@ i32.const 1 i32.sub local.set $0 - br $while-continue|00 + br $while-continue|012 end end i32.const -1 @@ -4508,67 +4760,67 @@ end i32.const 1 global.set $~argumentsLength - local.get $6 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $3 i32.const -1 - local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf5 - local.get $6 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf17 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $7 + local.tee $1 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf5 - local.get $0 - local.get $7 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf17 + local.get $1 + local.get $3 i32.add - local.get $7 + local.get $1 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $7 - i32.ge_s + local.get $3 + local.get $1 + local.get $3 + i32.le_s select - local.get $0 + local.get $3 i32.const 0 i32.lt_s select - local.set $0 - loop $while-continue|06 - local.get $0 + local.set $1 + loop $while-continue|018 + local.get $1 i32.const 0 i32.ge_s if - local.get $6 - local.get $0 - local.tee $1 + local.get $2 + local.get $1 + local.tee $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 7 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf5 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf17 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|06 + local.set $1 + br $while-continue|018 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -4580,51 +4832,51 @@ unreachable end i32.const -1 - local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf7 - local.get $6 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf19 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf7 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf19 i32.const 3 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $1 i32.const 3 i32.gt_u select - local.set $1 - loop $while-continue|011 - local.get $1 + local.set $0 + loop $while-continue|04 + local.get $0 i32.const 0 i32.ge_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf7 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf19 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|011 + local.set $0 + br $while-continue|04 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -4636,51 +4888,51 @@ unreachable end i32.const -1 - local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf12 - local.get $6 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf5 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf12 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf5 i32.const 2 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.get $0 + local.get $1 i32.const 2 i32.gt_u select - local.set $1 - loop $while-continue|013 - local.get $1 + local.set $0 + loop $while-continue|0910 + local.get $0 i32.const 0 i32.ge_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf12 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf5 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|013 + local.set $0 + br $while-continue|0910 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1216 @@ -4690,46 +4942,46 @@ unreachable end i32.const -1 - local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf14 - local.get $6 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf10 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf14 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf10 + local.get $1 i32.const 2 i32.sub - local.set $1 + local.set $0 loop $while-continue|015 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load $0 i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf14 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf10 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1216 @@ -4739,28 +4991,28 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf16 - local.get $6 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf16 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - loop $while-continue|017 - local.get $1 + local.set $0 + loop $while-continue|020 + local.get $0 i32.const 0 i32.ge_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add @@ -4768,17 +5020,17 @@ i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf16 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|017 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -4794,25 +5046,19 @@ i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 2736 i32.const 12 memory.copy $0 $0 local.get $0 - local.get $1 + local.get $2 i32.store $0 offset=60 global.get $~lib/memory/__stack_pointer i32.const 2800 i32.store $0 offset=64 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 2 - i32.shr_u + local.get $2 i32.const 2800 - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4835,15 +5081,9 @@ global.get $~lib/memory/__stack_pointer i32.const 2768 i32.store $0 offset=64 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 2 - i32.shr_u + local.get $2 i32.const 2768 - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4866,15 +5106,9 @@ global.get $~lib/memory/__stack_pointer i32.const 2928 i32.store $0 offset=64 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 2 - i32.shr_u + local.get $2 i32.const 2928 - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4897,15 +5131,9 @@ global.get $~lib/memory/__stack_pointer i32.const 3008 i32.store $0 offset=64 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 2 - i32.shr_u + local.get $2 i32.const 3008 - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4928,18 +5156,12 @@ global.get $~lib/memory/__stack_pointer i32.const 2800 i32.store $0 offset=64 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 2 - i32.shr_u + local.get $2 i32.const 2800 - call $~lib/util/string/joinStringArray - local.set $0 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4950,31 +5172,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $0 i32.const 0 i32.store $0 - local.get $6 + local.get $0 i32.const 2800 i32.store $0 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 2 - i32.shr_u + local.get $2 i32.const 2800 - call $~lib/util/string/joinStringArray - local.set $1 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=24 local.get $0 + i32.store $0 offset=24 local.get $1 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4990,46 +5206,48 @@ i32.const 8 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.const 3104 i64.load $0 align=1 i64.store $0 align=1 local.get $0 - local.get $6 + local.get $2 i32.store $0 offset=68 + i32.const 2 + global.set $~argumentsLength i32.const 1 - local.get $6 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_u select - local.set $1 - loop $for-loop|04 + local.set $0 + loop $for-loop|024 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.const 1 i32.store $0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|04 + local.set $0 + br $for-loop|024 end end - local.get $6 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -5040,7 +5258,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -5058,14 +5276,14 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.const 3136 i32.const 12 memory.copy $0 $0 local.get $0 - local.get $1 + local.get $5 i32.store $0 offset=72 - local.get $1 + local.get $5 i32.const 20 i32.sub i32.load $0 offset=16 @@ -5075,50 +5293,52 @@ i32.const 1 i32.gt_u if + i32.const 0 + local.set $1 local.get $0 i32.const 1 i32.shr_u - local.set $6 + local.set $4 local.get $0 i32.const 1 i32.sub - local.set $0 - loop $while-continue|01023 - local.get $2 - local.get $6 + local.set $3 + loop $while-continue|029 + local.get $1 + local.get $4 i32.lt_u if + local.get $5 local.get $1 - local.get $2 i32.const 2 i32.shl i32.add - local.tee $7 + local.tee $0 i32.load $0 - local.set $8 - local.get $7 - local.get $1 + local.set $2 local.get $0 - local.get $2 + local.get $5 + local.get $3 + local.get $1 i32.sub i32.const 2 i32.shl i32.add - local.tee $7 + local.tee $0 i32.load $0 i32.store $0 - local.get $7 - local.get $8 - i32.store $0 + local.get $0 local.get $2 + i32.store $0 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|01023 + local.set $1 + br $while-continue|029 end end end - local.get $1 + local.get $5 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -5131,7 +5351,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -5144,7 +5364,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -5162,44 +5382,46 @@ i32.const 20 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 3168 i32.const 20 memory.copy $0 $0 local.get $0 - local.get $1 + local.get $2 i32.store $0 offset=76 - local.get $1 - local.get $1 + i32.const 2 + global.set $~argumentsLength + local.get $2 i32.const 3 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 3 i32.gt_u select - local.tee $2 + local.tee $0 i32.const 2 i32.shl + local.get $2 i32.add + local.get $1 local.get $0 - local.get $2 i32.sub - local.tee $2 - local.get $0 + local.tee $0 + local.get $1 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select i32.const 2 i32.shl memory.copy $0 $0 - local.get $1 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -5212,7 +5434,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -5225,7 +5447,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -5238,7 +5460,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -5251,7 +5473,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 4 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -5278,6 +5500,8 @@ i32.store $0 offset=80 global.get $~lib/memory/__stack_pointer local.tee $0 + local.set $6 + local.get $0 i32.const 3248 i32.store $0 offset=24 local.get $0 @@ -5289,67 +5513,67 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store $0 - local.get $1 + local.get $0 local.get $8 i32.const 20 i32.sub i32.load $0 offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $5 i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $4 i32.store $0 - local.get $6 + local.get $4 i32.load $0 offset=4 - local.set $7 + local.set $3 i32.const 0 - local.set $2 - loop $for-loop|018 + local.set $1 + loop $for-loop|03 local.get $1 - local.get $2 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl - local.tee $9 + local.tee $2 local.get $8 i32.add i32.load $0 - local.set $10 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $9 - i32.add - local.get $10 local.get $2 + local.get $3 + i32.add + local.get $0 + local.get $1 local.get $8 i32.const 3248 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store $0 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|018 + local.set $1 + br $for-loop|03 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $6 + local.get $4 i32.store $0 offset=84 - local.get $6 + local.get $4 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -5362,7 +5586,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -5375,7 +5599,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 i32.const 2 call $~lib/array/Array#__get i32.const 4 @@ -5399,10 +5623,10 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|021 + local.set $2 + loop $for-loop|04 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $8 @@ -5411,10 +5635,10 @@ i32.shl i32.add i32.load $0 - local.set $2 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $1 local.get $0 local.get $8 i32.const 3280 @@ -5424,7 +5648,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|021 + br $for-loop|04 end end global.get $std/staticarray/maxVal @@ -5439,10 +5663,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $7 i32.const 3312 i32.store $0 offset=24 - local.get $9 + local.get $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5459,7 +5683,7 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store $0 local.get $8 i32.const 20 @@ -5467,42 +5691,42 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $10 - loop $for-loop|024 + local.set $5 + loop $for-loop|05 local.get $5 - local.get $10 - i32.lt_s + local.get $13 + i32.gt_s if local.get $8 - local.get $5 + local.get $13 i32.const 2 i32.shl i32.add i32.load $0 - local.set $11 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $11 - local.get $5 + local.get $4 + local.get $13 local.get $8 i32.const 3312 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $7 + local.get $6 i32.load $0 offset=12 - local.tee $12 + local.tee $3 i32.const 1 i32.add - local.tee $2 - local.get $7 + local.tee $10 + local.get $6 i32.load $0 offset=8 local.tee $0 i32.const 2 i32.shr_u i32.gt_u if - local.get $2 + local.get $10 i32.const 268435455 i32.gt_u if @@ -5523,27 +5747,27 @@ i32.const 1073741820 i32.ge_u select - local.tee $0 + local.tee $1 i32.const 8 - local.get $2 - local.get $2 + local.get $10 + local.get $10 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $1 + local.tee $0 local.get $0 local.get $1 - i32.gt_u + i32.lt_u select - local.tee $6 - local.get $7 + local.tee $9 + local.get $6 i32.load $0 local.tee $1 i32.const 20 i32.sub - local.tee $13 + local.tee $2 i32.load $0 i32.const -4 i32.and @@ -5551,26 +5775,26 @@ i32.sub i32.le_u if - local.get $13 - local.get $6 + local.get $2 + local.get $9 i32.store $0 offset=16 local.get $1 local.set $0 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $6 - local.get $13 + local.get $9 + local.get $2 i32.load $0 offset=12 call $~lib/rt/itcms/__new local.tee $0 local.get $1 - local.get $6 - local.get $13 + local.get $9 + local.get $2 i32.load $0 offset=16 - local.tee $13 - local.get $6 - local.get $13 - i32.lt_u + local.tee $2 + local.get $2 + local.get $9 + i32.gt_u select memory.copy $0 $0 end @@ -5578,51 +5802,51 @@ local.get $1 i32.ne if - local.get $7 + local.get $6 local.get $0 i32.store $0 - local.get $7 + local.get $6 local.get $0 i32.store $0 offset=4 local.get $0 if - local.get $7 + local.get $6 local.get $0 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end - local.get $7 local.get $6 + local.get $9 i32.store $0 offset=8 end - local.get $7 + local.get $6 i32.load $0 offset=4 - local.get $12 + local.get $3 i32.const 2 i32.shl i32.add - local.get $11 + local.get $4 i32.store $0 - local.get $7 - local.get $2 + local.get $6 + local.get $10 i32.store $0 offset=12 end - local.get $5 + local.get $13 i32.const 1 i32.add - local.set $5 - br $for-loop|024 + local.set $13 + br $for-loop|05 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $7 + local.get $6 i32.store $0 offset=88 - local.get $7 + local.get $6 i32.load $0 offset=12 i32.const 2 i32.ne @@ -5634,7 +5858,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -5647,7 +5871,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -5673,10 +5897,10 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|027 + local.set $3 + loop $for-loop|06 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $8 @@ -5685,11 +5909,11 @@ i32.shl i32.add i32.load $0 - local.set $5 + local.set $2 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $5 + local.get $2 local.get $1 local.get $8 i32.const 3344 @@ -5700,7 +5924,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|027 + br $for-loop|06 end end local.get $0 @@ -5728,7 +5952,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|030 + loop $for-loop|07 local.get $0 i32.const 0 i32.ge_s @@ -5754,7 +5978,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|030 + br $for-loop|07 end end local.get $1 @@ -5780,10 +6004,10 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|017 + local.set $2 + loop $for-loop|038 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $8 @@ -5792,11 +6016,11 @@ i32.shl i32.add i32.load $0 - local.set $2 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 + local.get $1 local.get $0 local.get $8 i32.const 3408 @@ -5808,7 +6032,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|017 + br $for-loop|038 end end i32.const 0 @@ -5822,7 +6046,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#some19 (result i32) + block $__inlined_func$~lib/staticarray/StaticArray#some39 (result i32) global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store $0 offset=24 @@ -5834,10 +6058,10 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|023 + local.set $2 + loop $for-loop|042 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $8 @@ -5846,23 +6070,23 @@ i32.shl i32.add i32.load $0 - local.set $2 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 + local.get $1 local.get $0 local.get $8 i32.const 3440 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#some19 + br_if $__inlined_func$~lib/staticarray/StaticArray#some39 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|023 + br $for-loop|042 end end i32.const 0 @@ -5887,10 +6111,10 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|029 + local.set $2 + loop $for-loop|046 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $8 @@ -5899,11 +6123,11 @@ i32.shl i32.add i32.load $0 - local.set $2 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 + local.get $1 local.get $0 local.get $8 i32.const 3472 @@ -5916,7 +6140,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|029 + br $for-loop|046 end end i32.const 1 @@ -5930,7 +6154,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#every31 (result i32) + block $__inlined_func$~lib/staticarray/StaticArray#every47 (result i32) global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store $0 offset=24 @@ -5942,10 +6166,10 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|035 + local.set $2 + loop $for-loop|050 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $8 @@ -5954,24 +6178,24 @@ i32.shl i32.add i32.load $0 - local.set $2 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 + local.get $1 local.get $0 local.get $8 i32.const 3504 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#every31 + br_if $__inlined_func$~lib/staticarray/StaticArray#every47 drop local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|035 + br $for-loop|050 end end i32.const 1 @@ -5995,11 +6219,11 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $1 + local.set $2 block $__inlined_func$~lib/staticarray/StaticArray#findIndex - loop $for-loop|041 + loop $for-loop|053 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $8 @@ -6008,10 +6232,10 @@ i32.shl i32.add i32.load $0 - local.set $2 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $1 local.get $0 local.get $8 i32.const 3536 @@ -6022,7 +6246,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|041 + br $for-loop|053 end end i32.const -1 @@ -6050,11 +6274,11 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#findIndex43 - loop $for-loop|047 + local.set $2 + block $__inlined_func$~lib/staticarray/StaticArray#findIndex54 + loop $for-loop|057 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $8 @@ -6063,21 +6287,21 @@ i32.shl i32.add i32.load $0 - local.set $2 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $1 local.get $0 local.get $8 i32.const 3568 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex43 + br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex54 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|047 + br $for-loop|057 end end i32.const -1 @@ -6107,7 +6331,7 @@ i32.sub local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex - loop $for-loop|053 + loop $for-loop|061 local.get $1 i32.const 0 i32.ge_s @@ -6132,7 +6356,7 @@ i32.const 1 i32.sub local.set $1 - br $for-loop|053 + br $for-loop|061 end end i32.const -1 @@ -6161,8 +6385,8 @@ i32.const 1 i32.sub local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex55 - loop $for-loop|059 + block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex62 + loop $for-loop|065 local.get $1 i32.const 0 i32.ge_s @@ -6182,12 +6406,12 @@ i32.const 3632 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex55 + br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex62 local.get $1 i32.const 1 i32.sub local.set $1 - br $for-loop|059 + br $for-loop|065 end end i32.const -1 @@ -6205,16 +6429,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 3664 i32.const 16 memory.copy $0 $0 + local.get $1 local.get $0 - local.get $2 i32.store $0 offset=92 i32.const 0 global.set $~argumentsLength @@ -6231,11 +6455,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of18 - block $0of19 - block $outOfRange10 + block $1of166 + block $0of167 + block $outOfRange8 global.get $~argumentsLength - br_table $0of19 $1of18 $outOfRange10 + br_table $0of167 $1of166 $outOfRange8 end unreachable end @@ -6245,8 +6469,8 @@ i32.const 3712 i32.store $0 end - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.const 20 i32.sub i32.load $0 offset=16 @@ -6258,7 +6482,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -6269,7 +6493,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -6282,7 +6506,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -6295,7 +6519,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -6314,12 +6538,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|034 + loop $while-continue|010 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|034 + br $while-continue|010 end end end @@ -6636,14 +6860,14 @@ i32.load $0 offset=16 i32.const 2 i32.shr_u - local.set $3 + local.set $4 local.get $0 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $0 i32.const 0 @@ -6653,9 +6877,9 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end @@ -6663,8 +6887,6 @@ i32.const 2 i32.shl i32.add - local.set $4 - i32.const 0 local.set $1 global.get $~lib/memory/__stack_pointer local.get $2 @@ -6672,7 +6894,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $3 + local.get $4 i32.add local.tee $2 i32.const 0 @@ -6682,9 +6904,9 @@ select else local.get $2 - local.get $3 + local.get $4 local.get $2 - local.get $3 + local.get $4 i32.lt_s select end @@ -6705,29 +6927,29 @@ i32.store $0 loop $while-continue|0 local.get $0 - local.get $1 + local.get $3 i32.gt_u if - local.get $1 local.get $2 + local.get $3 i32.add local.get $1 - local.get $4 + local.get $3 i32.add i32.load $0 - local.tee $3 + local.tee $4 i32.store $0 - local.get $3 + local.get $4 if local.get $2 - local.get $3 + local.get $4 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $3 i32.const 4 i32.add - local.set $1 + local.set $3 br $while-continue|0 end end @@ -6831,9 +7053,9 @@ local.tee $2 local.get $1 i32.load $0 offset=12 - local.tee $5 - i32.add local.tee $3 + i32.add + local.tee $4 i32.const 268435455 i32.gt_u if @@ -6849,18 +7071,18 @@ i32.shl local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $4 i32.store $0 - local.get $2 + local.get $4 i32.load $0 offset=4 - local.set $3 + local.set $7 local.get $1 i32.load $0 offset=4 - local.set $7 + local.set $2 i32.const 0 local.set $1 loop $for-loop|0 @@ -6869,18 +7091,18 @@ i32.lt_u if local.get $1 - local.get $3 + local.get $7 i32.add local.get $0 local.get $1 i32.add i32.load $0 - local.tee $4 + local.tee $5 i32.store $0 - local.get $4 + local.get $5 if - local.get $2 local.get $4 + local.get $5 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end @@ -6891,41 +7113,41 @@ br $for-loop|0 end end - local.get $3 local.get $6 + local.get $7 i32.add - local.set $1 - local.get $5 + local.set $0 + local.get $3 i32.const 2 i32.shl local.set $3 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 local.get $3 i32.lt_u if local.get $0 local.get $1 i32.add - local.get $0 - local.get $7 + local.get $1 + local.get $2 i32.add i32.load $0 - local.tee $4 + local.tee $5 i32.store $0 - local.get $4 + local.get $5 if - local.get $2 local.get $4 + local.get $5 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end @@ -6933,215 +7155,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/string/joinStringArray (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3800 - i32.lt_s - if - i32.const 36592 - i32.const 36640 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store $0 - local.get $5 - i32.const 0 - i32.store $0 offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2768 - return - end - local.get $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load $0 - local.tee $0 - i32.store $0 - local.get $1 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2768 - local.get $0 - select - return - end - loop $for-loop|0 - local.get $1 - local.get $4 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $6 - i32.store $0 offset=4 - local.get $6 - if - local.get $3 - local.get $6 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $3 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - local.get $5 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store $0 offset=8 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $7 - i32.store $0 offset=4 - local.get $7 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $7 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - local.tee $7 - i32.const 1 - i32.shl - memory.copy $0 $0 - local.get $1 - local.get $7 - i32.add - local.set $1 - end - local.get $4 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - memory.copy $0 $0 - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $0 - i32.store $0 offset=4 - local.get $0 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const -2 - i32.and - memory.copy $0 $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) global.get $~lib/rt/itcms/white diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 0b2524832a..c6fdcbaa3a 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -234,6 +234,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -253,6 +254,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -265,17 +267,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -287,8 +290,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -431,6 +432,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -450,6 +452,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -535,15 +538,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -570,6 +570,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -745,22 +746,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -785,16 +789,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -890,18 +897,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -925,18 +935,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -946,12 +959,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1099,22 +1115,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1159,16 +1178,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1223,10 +1245,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1342,6 +1367,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1351,15 +1377,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1420,17 +1444,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1442,22 +1464,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1530,6 +1550,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1590,8 +1611,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1636,8 +1655,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1687,8 +1704,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1770,6 +1785,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1848,6 +1864,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1863,6 +1880,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1953,16 +1971,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1995,16 +2016,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2018,46 +2042,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2094,10 +2125,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2217,30 +2251,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2311,6 +2351,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2323,6 +2364,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2385,6 +2427,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/staticarray/StaticArray#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2393,6 +2436,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/casemap/casemap (type $i32_i32_=>_i32) (param $c i32) (param $dir i32) (result i32) (local $c0 i32) @@ -2405,7 +2449,6 @@ (local $rd i32) (local $xn i32) (local $xb i32) - (local $12 i32) (local $h i32) (local $t i32) local.get $c @@ -2496,8 +2539,6 @@ local.set $xb loop $while-continue|0 local.get $xn - local.set $12 - local.get $12 if local.get $xn i32.const 1 @@ -2583,6 +2624,7 @@ end end local.get $c0 + return ) (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2632,12 +2674,12 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2708,8 +2750,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2738,6 +2778,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2780,6 +2821,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/util/string/stagedBinaryLookup (type $i32_i32_=>_i32) (param $table i32) (param $c i32) (result i32) local.get $table @@ -2805,6 +2847,7 @@ i32.shr_u i32.const 1 i32.and + return ) (func $~lib/string/String#codePointAt (type $i32_i32_=>_i32) (param $this i32) (param $pos i32) (result i32) (local $len i32) @@ -2872,6 +2915,7 @@ i32.add i32.const 65536 i32.add + return ) (func $~lib/util/number/decimalCount32 (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -2929,24 +2973,21 @@ unreachable ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -3005,19 +3046,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 18188 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -3045,13 +3086,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -3131,7 +3172,6 @@ unreachable ) (func $~lib/util/number/utoa64_dec_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) (local $t i64) (local $r i32) (local $b i32) @@ -3146,8 +3186,6 @@ local.get $num i64.const 100000000 i64.ge_u - local.set $3 - local.get $3 if local.get $num i64.const 100000000 @@ -3254,13 +3292,10 @@ call $~lib/util/number/utoa32_dec_lut ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -3308,14 +3343,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -3342,8 +3378,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -3364,8 +3398,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -3381,6 +3413,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -3477,11 +3510,13 @@ local.get $this local.get $radix call $~lib/util/number/itoa64 + return ) (func $~lib/string/String.__concat (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String#concat + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -3573,10 +3608,9 @@ (local $specialsLen i32) (local $j i32) (local $i i32) - (local $7 i32) (local $c i32) + (local $c|8 i32) (local $c|9 i32) - (local $c|10 i32) (local $c1 i32) (local $c0 i32) (local $index i32) @@ -3584,7 +3618,6 @@ (local $ptr i32) (local $max i32) (local $min i32) - (local $18 i32) (local $mid i32) (local $cmp i32) (local $ab i32) @@ -3592,7 +3625,7 @@ (local $code i32) (local $lo i32) (local $hi i32) - (local $26 i32) + (local $24 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3608,12 +3641,12 @@ i32.eqz if local.get $this - local.set $26 + local.set $24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $26 + local.get $24 return end global.get $~lib/memory/__stack_pointer @@ -3629,11 +3662,11 @@ global.get $~lib/util/casemap/SPECIALS_UPPER local.set $specialsPtr global.get $~lib/util/casemap/SPECIALS_UPPER - local.set $26 + local.set $24 global.get $~lib/memory/__stack_pointer - local.get $26 + local.get $24 i32.store $0 offset=4 - local.get $26 + local.get $24 call $~lib/staticarray/StaticArray#get:length local.set $specialsLen i32.const 0 @@ -3644,8 +3677,6 @@ local.get $i local.get $len i32.lt_u - local.set $7 - local.get $7 if block $for-continue|0 local.get $this @@ -3655,12 +3686,15 @@ i32.add i32.load16_u $0 local.set $c - local.get $c - local.set $c|9 - local.get $c|9 - i32.const 7 - i32.shr_u - i32.eqz + block $~lib/util/string/isAscii|inlined.0 (result i32) + local.get $c + local.set $c|8 + local.get $c|8 + i32.const 7 + i32.shr_u + i32.eqz + br $~lib/util/string/isAscii|inlined.0 + end if local.get $codes local.get $j @@ -3669,13 +3703,13 @@ i32.add block $~lib/util/string/toUpper8|inlined.0 (result i32) local.get $c - local.set $c|10 + local.set $c|9 i32.const 0 i32.const 0 i32.gt_s drop i32.const 1292 - local.get $c|10 + local.get $c|9 i32.add i32.load8_u $0 br $~lib/util/string/toUpper8|inlined.0 @@ -3796,8 +3830,6 @@ local.get $min local.get $max i32.le_s - local.set $18 - local.get $18 if local.get $min local.get $max @@ -3842,6 +3874,7 @@ end end i32.const -1 + br $~lib/util/casemap/bsearch|inlined.0 end local.set $index end @@ -3956,26 +3989,26 @@ i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.set $26 + local.set $24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $26 + local.get $24 + return ) (func $start:std/string-casemapping (type $none_=>_none) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 i64) (local $5 i64) (local $6 i64) (local $7 i64) (local $8 i64) (local $9 i64) - (local $10 i64) - (local $11 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -4003,23 +4036,23 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 32 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 32 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4031,23 +4064,23 @@ unreachable end i32.const 32 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 32 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4059,23 +4092,23 @@ unreachable end i32.const 10784 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 10832 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4087,23 +4120,23 @@ unreachable end i32.const 10880 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 10928 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4115,23 +4148,23 @@ unreachable end i32.const 10976 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 11072 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4143,23 +4176,23 @@ unreachable end i32.const 11072 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 11168 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4171,23 +4204,23 @@ unreachable end i32.const 11264 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 11328 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4199,23 +4232,23 @@ unreachable end i32.const 11328 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 11392 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4227,23 +4260,23 @@ unreachable end i32.const 11456 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 11552 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4255,23 +4288,23 @@ unreachable end i32.const 11552 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 11648 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4283,23 +4316,23 @@ unreachable end i32.const 11744 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 11840 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4311,23 +4344,23 @@ unreachable end i32.const 11840 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 11936 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4339,23 +4372,23 @@ unreachable end i32.const 12032 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 12112 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4367,23 +4400,23 @@ unreachable end i32.const 12192 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 12272 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4395,23 +4428,23 @@ unreachable end i32.const 12352 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 12416 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4423,23 +4456,23 @@ unreachable end i32.const 12480 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 12560 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4451,23 +4484,23 @@ unreachable end i32.const 12640 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 12720 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4479,23 +4512,23 @@ unreachable end i32.const 12800 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 12864 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4507,23 +4540,23 @@ unreachable end i32.const 12928 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 13008 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4535,23 +4568,23 @@ unreachable end i32.const 13088 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 13168 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4563,23 +4596,23 @@ unreachable end i32.const 13248 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 13408 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4591,23 +4624,23 @@ unreachable end i32.const 13248 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 13568 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4619,23 +4652,23 @@ unreachable end i32.const 13728 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 13760 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4647,23 +4680,23 @@ unreachable end i32.const 13792 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 13824 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4675,23 +4708,23 @@ unreachable end i32.const 13856 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14064 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4703,29 +4736,29 @@ unreachable end i32.const 13728 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=12 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14272 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4737,29 +4770,29 @@ unreachable end i32.const 14304 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=12 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14336 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4771,29 +4804,29 @@ unreachable end i32.const 14368 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=12 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14368 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4806,23 +4839,23 @@ end i32.const 65536 call $~lib/string/String.fromCodePoint - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14624 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4835,23 +4868,23 @@ end i32.const 65536 call $~lib/string/String.fromCodePoint - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14624 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4863,23 +4896,23 @@ unreachable end i32.const 14656 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14688 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4891,23 +4924,23 @@ unreachable end i32.const 14720 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14752 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4919,23 +4952,23 @@ unreachable end i32.const 14784 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14816 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4947,23 +4980,23 @@ unreachable end i32.const 14848 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14880 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4975,23 +5008,23 @@ unreachable end i32.const 14912 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 14944 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5003,23 +5036,23 @@ unreachable end i32.const 14976 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15008 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5031,23 +5064,23 @@ unreachable end i32.const 15040 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15072 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5059,23 +5092,23 @@ unreachable end i32.const 15104 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15136 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5087,23 +5120,23 @@ unreachable end i32.const 15168 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15200 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5115,23 +5148,23 @@ unreachable end i32.const 15232 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15264 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5143,23 +5176,23 @@ unreachable end i32.const 15296 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15328 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5171,23 +5204,23 @@ unreachable end i32.const 15360 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15392 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5199,23 +5232,23 @@ unreachable end i32.const 15424 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15456 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5227,23 +5260,23 @@ unreachable end i32.const 15488 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15520 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5255,23 +5288,23 @@ unreachable end i32.const 15552 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15584 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5283,23 +5316,23 @@ unreachable end i32.const 15616 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15648 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5311,23 +5344,23 @@ unreachable end i32.const 15680 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15712 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5339,23 +5372,23 @@ unreachable end i32.const 15744 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15776 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5367,23 +5400,23 @@ unreachable end i32.const 15808 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15840 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5395,23 +5428,23 @@ unreachable end i32.const 15872 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15904 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5423,23 +5456,23 @@ unreachable end i32.const 15936 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15968 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5451,23 +5484,23 @@ unreachable end i32.const 16000 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16032 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5479,23 +5512,23 @@ unreachable end i32.const 16064 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16096 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5507,23 +5540,23 @@ unreachable end i32.const 16128 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16160 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5535,23 +5568,23 @@ unreachable end i32.const 16192 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16224 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5563,23 +5596,23 @@ unreachable end i32.const 16256 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 15328 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5591,23 +5624,23 @@ unreachable end i32.const 16288 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16320 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5619,23 +5652,23 @@ unreachable end i32.const 16352 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16384 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5647,23 +5680,23 @@ unreachable end i32.const 16416 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16448 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5675,23 +5708,23 @@ unreachable end i32.const 16480 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16512 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5703,23 +5736,23 @@ unreachable end i32.const 16544 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16576 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5731,23 +5764,23 @@ unreachable end i32.const 16608 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16640 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5759,23 +5792,23 @@ unreachable end i32.const 16672 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16704 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5787,23 +5820,23 @@ unreachable end i32.const 16736 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16768 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5815,23 +5848,23 @@ unreachable end i32.const 16800 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16832 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5843,23 +5876,23 @@ unreachable end i32.const 16864 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16896 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5871,23 +5904,23 @@ unreachable end i32.const 16928 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 16960 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5899,23 +5932,23 @@ unreachable end i32.const 16992 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toLowerCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17024 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5927,23 +5960,23 @@ unreachable end i32.const 17056 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17088 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5955,23 +5988,23 @@ unreachable end i32.const 14304 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17120 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5983,23 +6016,23 @@ unreachable end i32.const 17152 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17184 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6011,23 +6044,23 @@ unreachable end i32.const 17216 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17248 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6039,23 +6072,23 @@ unreachable end i32.const 17280 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17312 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6067,23 +6100,23 @@ unreachable end i32.const 17344 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17376 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6095,23 +6128,23 @@ unreachable end i32.const 17408 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17376 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6123,23 +6156,23 @@ unreachable end i32.const 17440 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17472 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6151,23 +6184,23 @@ unreachable end i32.const 17504 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17536 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6179,23 +6212,23 @@ unreachable end i32.const 17568 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17600 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6207,23 +6240,23 @@ unreachable end i32.const 17632 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17664 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6235,23 +6268,23 @@ unreachable end i32.const 17696 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17728 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6263,23 +6296,23 @@ unreachable end i32.const 17760 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String#toUpperCase - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 17792 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 + local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6296,174 +6329,172 @@ local.get $0 i32.const 1114111 i32.le_s - local.set $1 - local.get $1 if global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/string/String.fromCodePoint - local.tee $2 + local.tee $1 i32.store $0 offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 call $~lib/string/String#toLowerCase - local.tee $3 + local.tee $2 i32.store $0 offset=20 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 call $~lib/string/String#toUpperCase - local.tee $4 + local.tee $3 i32.store $0 offset=24 - local.get $3 + local.get $2 i32.const 0 call $~lib/string/String#codePointAt i64.extend_i32_s - local.set $7 - local.get $3 + local.set $6 + local.get $2 i32.const 1 call $~lib/string/String#codePointAt i64.extend_i32_s - local.tee $5 + local.tee $4 i64.const 0 i64.ge_s if - local.get $7 - local.get $5 + local.get $6 + local.get $4 i64.const 16 i64.shl i64.add - local.set $7 + local.set $6 end - local.get $3 + local.get $2 i32.const 2 call $~lib/string/String#codePointAt i64.extend_i32_s - local.tee $6 + local.tee $5 i64.const 0 i64.ge_s if - local.get $7 local.get $6 + local.get $5 i64.const 32 i64.shl i64.add - local.set $7 + local.set $6 end - local.get $4 + local.get $3 i32.const 0 call $~lib/string/String#codePointAt i64.extend_i32_s - local.set $8 - local.get $4 + local.set $7 + local.get $3 i32.const 1 call $~lib/string/String#codePointAt i64.extend_i32_s - local.tee $5 + local.tee $4 i64.const 0 i64.ge_s if - local.get $8 - local.get $5 + local.get $7 + local.get $4 i64.const 16 i64.shl i64.add - local.set $8 + local.set $7 end - local.get $4 + local.get $3 i32.const 2 call $~lib/string/String#codePointAt i64.extend_i32_s - local.tee $6 + local.tee $5 i64.const 0 i64.ge_s if - local.get $8 - local.get $6 + local.get $7 + local.get $5 i64.const 32 i64.shl i64.add - local.set $8 + local.set $7 end local.get $0 i32.const 0 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.set $9 + local.set $8 local.get $0 i32.const 1 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.tee $5 + local.tee $4 i64.const 0 i64.ge_s if - local.get $9 - local.get $5 + local.get $8 + local.get $4 i64.const 16 i64.shl i64.add - local.set $9 + local.set $8 end local.get $0 i32.const 2 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.tee $6 + local.tee $5 i64.const 0 i64.ge_s if - local.get $9 - local.get $6 + local.get $8 + local.get $5 i64.const 32 i64.shl i64.add - local.set $9 + local.set $8 end local.get $0 i32.const 0 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.set $10 + local.set $9 local.get $0 i32.const 1 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.tee $5 + local.tee $4 i64.const 0 i64.ge_s if - local.get $10 - local.get $5 + local.get $9 + local.get $4 i64.const 16 i64.shl i64.add - local.set $10 + local.set $9 end local.get $0 i32.const 2 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.tee $6 + local.tee $5 i64.const 0 i64.ge_s if - local.get $10 - local.get $6 + local.get $9 + local.get $5 i64.const 32 i64.shl i64.add - local.set $10 + local.set $9 end - local.get $7 - local.get $9 + local.get $6 + local.get $8 i64.ne if i32.const 17824 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 1 local.get $0 f64.convert_i32_s @@ -6473,25 +6504,25 @@ f64.const 0 call $~lib/builtins/trace i32.const 17920 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 - local.get $7 + local.get $10 + local.get $6 i32.const 10 call $~lib/number/I64#toString - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String.__concat - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 0 f64.const 0 f64.const 0 @@ -6500,25 +6531,25 @@ f64.const 0 call $~lib/builtins/trace i32.const 19760 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 - local.get $9 + local.get $10 + local.get $8 i32.const 10 call $~lib/number/I64#toString - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String.__concat - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 0 f64.const 0 f64.const 0 @@ -6527,16 +6558,16 @@ f64.const 0 call $~lib/builtins/trace end - local.get $8 - local.get $10 + local.get $7 + local.get $9 i64.ne if i32.const 19824 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 1 local.get $0 f64.convert_i32_s @@ -6546,25 +6577,25 @@ f64.const 0 call $~lib/builtins/trace i32.const 19920 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 - local.get $8 + local.get $10 + local.get $7 i32.const 10 call $~lib/number/I64#toString - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String.__concat - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 0 f64.const 0 f64.const 0 @@ -6573,25 +6604,25 @@ f64.const 0 call $~lib/builtins/trace i32.const 19984 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=4 - local.get $11 local.get $10 + local.get $9 i32.const 10 call $~lib/number/I64#toString - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 offset=8 - local.get $11 + local.get $10 call $~lib/string/String.__concat - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store $0 - local.get $11 + local.get $10 i32.const 0 f64.const 0 f64.const 0 @@ -6617,41 +6648,38 @@ (local $codes i32) (local $j i32) (local $i i32) - (local $5 i32) (local $c i32) + (local $c|6 i32) (local $c|7 i32) - (local $c|8 i32) (local $c1 i32) (local $c0 i32) (local $sigma i32) (local $buffer i32) (local $index i32) - (local $len|14 i32) + (local $len|13 i32) (local $found i32) (local $pos i32) + (local $16 i32) (local $17 i32) - (local $18 i32) (local $minPos i32) - (local $20 i32) - (local $buffer|21 i32) - (local $index|22 i32) + (local $buffer|19 i32) + (local $index|20 i32) + (local $c|21 i32) + (local $c1|22 i32) (local $c|23 i32) - (local $c1|24 i32) + (local $c|24 i32) (local $c|25 i32) - (local $c|26 i32) - (local $c|27 i32) - (local $28 i32) - (local $29 i32) + (local $26 i32) + (local $27 i32) (local $maxPos i32) - (local $31 i32) + (local $c|29 i32) + (local $c1|30 i32) + (local $c|31 i32) (local $c|32 i32) - (local $c1|33 i32) - (local $c|34 i32) - (local $c|35 i32) (local $code i32) (local $lo i32) (local $hi i32) - (local $39 i32) + (local $36 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6667,12 +6695,12 @@ i32.eqz if local.get $this - local.set $39 + local.set $36 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $39 + local.get $36 return end global.get $~lib/memory/__stack_pointer @@ -6693,8 +6721,6 @@ local.get $i local.get $len i32.lt_u - local.set $5 - local.get $5 if block $for-continue|0 local.get $this @@ -6704,12 +6730,15 @@ i32.add i32.load16_u $0 local.set $c - local.get $c - local.set $c|7 - local.get $c|7 - i32.const 7 - i32.shr_u - i32.eqz + block $~lib/util/string/isAscii|inlined.1 (result i32) + local.get $c + local.set $c|6 + local.get $c|6 + i32.const 7 + i32.shr_u + i32.eqz + br $~lib/util/string/isAscii|inlined.1 + end if local.get $codes local.get $j @@ -6718,13 +6747,13 @@ i32.add block $~lib/util/string/toLower8|inlined.0 (result i32) local.get $c - local.set $c|8 + local.set $c|7 i32.const 0 i32.const 0 i32.gt_s drop i32.const 6060 - local.get $c|8 + local.get $c|7 i32.add i32.load8_u $0 br $~lib/util/string/toLower8|inlined.0 @@ -6840,19 +6869,19 @@ local.get $i local.set $index local.get $len - local.set $len|14 + local.set $len|13 i32.const 0 local.set $found local.get $index local.set $pos i32.const 0 - local.tee $17 + local.tee $16 local.get $pos i32.const 30 i32.sub - local.tee $18 + local.tee $17 + local.get $16 local.get $17 - local.get $18 i32.gt_s select local.set $minPos @@ -6860,63 +6889,61 @@ local.get $pos local.get $minPos i32.gt_s - local.set $20 - local.get $20 if block $~lib/util/string/codePointBefore|inlined.0 (result i32) local.get $buffer - local.set $buffer|21 + local.set $buffer|19 local.get $pos - local.set $index|22 - local.get $index|22 + local.set $index|20 + local.get $index|20 i32.const 0 i32.le_s if i32.const -1 br $~lib/util/string/codePointBefore|inlined.0 end - local.get $buffer|21 - local.get $index|22 + local.get $buffer|19 + local.get $index|20 i32.const 1 i32.sub i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $c|23 - local.get $c|23 + local.set $c|21 + local.get $c|21 i32.const 64512 i32.and i32.const 56320 i32.eq - local.get $index|22 + local.get $index|20 i32.const 2 i32.sub i32.const 0 i32.ge_s i32.and if - local.get $buffer|21 - local.get $index|22 + local.get $buffer|19 + local.get $index|20 i32.const 2 i32.sub i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $c1|24 - local.get $c1|24 + local.set $c1|22 + local.get $c1|22 i32.const 64512 i32.and i32.const 55296 i32.eq if - local.get $c1|24 + local.get $c1|22 i32.const 1023 i32.and i32.const 10 i32.shl - local.get $c|23 + local.get $c|21 i32.const 1023 i32.and i32.add @@ -6925,7 +6952,7 @@ br $~lib/util/string/codePointBefore|inlined.0 end end - local.get $c|23 + local.get $c|21 i32.const 63488 i32.and i32.const 55296 @@ -6933,36 +6960,43 @@ if (result i32) i32.const 65533 else - local.get $c|23 + local.get $c|21 end + br $~lib/util/string/codePointBefore|inlined.0 end - local.set $c|25 - local.get $c|25 - local.set $c|26 - local.get $c|26 - i32.const 918000 - i32.lt_u - if (result i32) - i32.const 6188 - local.get $c|26 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - if - local.get $c|25 - local.set $c|27 - local.get $c|27 - i32.const 127370 + local.set $c|23 + block $~lib/util/string/isCaseIgnorable|inlined.0 (result i32) + local.get $c|23 + local.set $c|24 + local.get $c|24 + i32.const 918000 i32.lt_u if (result i32) - i32.const 9196 - local.get $c|27 + i32.const 6188 + local.get $c|24 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end + br $~lib/util/string/isCaseIgnorable|inlined.0 + end + i32.eqz + if + block $~lib/util/string/isCased|inlined.0 (result i32) + local.get $c|23 + local.set $c|25 + local.get $c|25 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9196 + local.get $c|25 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + br $~lib/util/string/isCased|inlined.0 + end if i32.const 1 local.set $found @@ -6972,7 +7006,7 @@ end end local.get $pos - local.get $c|25 + local.get $c|23 i32.const 65536 i32.ge_s i32.const 1 @@ -6995,11 +7029,11 @@ local.get $pos i32.const 30 i32.add - local.tee $28 - local.get $len|14 - local.tee $29 - local.get $28 - local.get $29 + local.tee $26 + local.get $len|13 + local.tee $27 + local.get $26 + local.get $27 i32.lt_s select local.set $maxPos @@ -7007,8 +7041,6 @@ local.get $pos local.get $maxPos i32.lt_s - local.set $31 - local.get $31 if local.get $buffer local.get $pos @@ -7016,8 +7048,8 @@ i32.shl i32.add i32.load16_u $0 - local.set $c|32 - local.get $c|32 + local.set $c|29 + local.get $c|29 i32.const 64512 i32.and i32.const 55296 @@ -7025,7 +7057,7 @@ local.get $pos i32.const 1 i32.add - local.get $len|14 + local.get $len|13 i32.ne i32.and if @@ -7035,58 +7067,64 @@ i32.shl i32.add i32.load16_u $0 offset=2 - local.set $c1|33 - local.get $c1|33 + local.set $c1|30 + local.get $c1|30 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $c|32 + local.get $c|29 i32.const 55296 i32.sub i32.const 10 i32.shl - local.get $c1|33 + local.get $c1|30 i32.const 56320 i32.sub i32.add i32.const 65536 i32.add - local.set $c|32 + local.set $c|29 end end - local.get $c|32 - local.set $c|34 - local.get $c|34 - i32.const 918000 - i32.lt_u - if (result i32) - i32.const 6188 - local.get $c|34 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - i32.eqz - if - local.get $c|32 - local.set $c|35 - local.get $c|35 - i32.const 127370 + block $~lib/util/string/isCaseIgnorable|inlined.1 (result i32) + local.get $c|29 + local.set $c|31 + local.get $c|31 + i32.const 918000 i32.lt_u if (result i32) - i32.const 9196 - local.get $c|35 + i32.const 6188 + local.get $c|31 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end + br $~lib/util/string/isCaseIgnorable|inlined.1 + end + i32.eqz + if + block $~lib/util/string/isCased|inlined.1 (result i32) + local.get $c|29 + local.set $c|32 + local.get $c|32 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9196 + local.get $c|32 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + br $~lib/util/string/isCased|inlined.1 + end i32.eqz br $~lib/util/string/isFinalSigma|inlined.0 end local.get $pos - local.get $c|32 + local.get $c|29 i32.const 65536 i32.ge_u i32.const 1 @@ -7097,6 +7135,7 @@ end end i32.const 1 + br $~lib/util/string/isFinalSigma|inlined.0 end else i32.const 0 @@ -7202,12 +7241,13 @@ i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.set $39 + local.set $36 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $39 + local.get $36 + return ) (func $~lib/string/String.fromCodePoint (type $i32_=>_i32) (param $code i32) (result i32) (local $hasSur i32) @@ -7285,6 +7325,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $5 + return ) (func $~lib/util/number/itoa64 (type $i64_i32_=>_i32) (param $value i64) (param $radix i32) (result i32) (local $sign i32) @@ -7508,6 +7549,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $18 + return ) (func $~lib/string/String#concat (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $thisSize i32) @@ -7573,5 +7615,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 + return ) ) diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index b1021bfdcc..e2cf7d2373 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -1,10 +1,10 @@ (module (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func_subtype (param i32 i32 f64 f64 f64 f64 f64) func)) @@ -532,6 +532,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 53848 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 21056 + i32.load $0 + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 21060 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2375,7 +2507,7 @@ i32.load $0 offset=16 i32.const 1 i32.shr_u - local.tee $7 + local.tee $8 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -2386,12 +2518,12 @@ return end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.const 6 i32.mul i32.const 2 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store $0 global.get $~lib/memory/__stack_pointer i32.const 1488 @@ -2402,12 +2534,12 @@ i32.shr_u local.set $3 loop $for-loop|0 - local.get $6 local.get $7 + local.get $8 i32.lt_u if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.shl i32.add @@ -2422,30 +2554,30 @@ i32.sub i32.const 1025 i32.lt_u - local.get $6 local.get $7 + local.get $8 i32.const 1 i32.sub i32.lt_u i32.and if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.shl i32.add i32.load16_u $0 offset=2 - local.tee $8 + local.tee $4 i32.const 56319 i32.sub i32.const 1025 i32.lt_u if - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 - local.get $8 + local.set $7 + local.get $4 i32.const 1023 i32.and local.get $2 @@ -2461,21 +2593,21 @@ i32.const 131072 i32.ge_u if + local.get $6 local.get $5 - local.get $4 i32.const 1 i32.shl i32.add local.get $1 - local.get $8 + local.get $4 i32.const 16 i32.shl i32.or i32.store $0 - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-continue|0 end end @@ -2486,8 +2618,8 @@ i32.const 25 i32.le_u if + local.get $6 local.get $5 - local.get $4 i32.const 1 i32.shl i32.add @@ -2502,24 +2634,24 @@ i32.const 64056 i32.le_u if (result i32) - block $~lib/util/casemap/bsearch|inlined.0 (result i32) - local.get $3 - local.set $1 - i32.const 0 - local.set $8 + local.get $3 + local.set $1 + i32.const 0 + local.set $9 + block $~lib/util/casemap/bsearch|inlined.0 loop $while-continue|1 local.get $1 - local.get $8 + local.get $9 i32.ge_s if local.get $1 - local.get $8 + local.get $9 i32.add i32.const 3 i32.shr_u i32.const 2 i32.shl - local.tee $10 + local.tee $4 i32.const 1 i32.shl i32.const 1488 @@ -2527,31 +2659,30 @@ i32.load16_u $0 local.get $2 i32.sub - local.tee $9 + local.tee $10 + i32.eqz + br_if $~lib/util/casemap/bsearch|inlined.0 + local.get $10 + i32.const 31 + i32.shr_u if - local.get $9 - i32.const 31 - i32.shr_u - if - local.get $10 - i32.const 4 - i32.add - local.set $8 - else - local.get $10 - i32.const 4 - i32.sub - local.set $1 - end + local.get $4 + i32.const 4 + i32.add + local.set $9 else - local.get $10 - br $~lib/util/casemap/bsearch|inlined.0 + local.get $4 + i32.const 4 + i32.sub + local.set $1 end br $while-continue|1 end end i32.const -1 + local.set $4 end + local.get $4 else i32.const -1 end @@ -2567,26 +2698,26 @@ local.tee $1 i32.load16_u $0 offset=6 local.set $2 + local.get $6 local.get $5 - local.get $4 i32.const 1 i32.shl i32.add - local.tee $8 + local.tee $4 local.get $1 i32.load $0 offset=2 i32.store $0 - local.get $8 + local.get $4 local.get $2 i32.store16 $0 offset=4 - local.get $4 + local.get $5 local.get $2 i32.const 0 i32.ne i32.const 1 i32.add i32.add - local.set $4 + local.set $5 else local.get $2 i32.const 1 @@ -2597,16 +2728,16 @@ i32.const 65536 i32.lt_u if + local.get $6 local.get $5 - local.get $4 i32.const 1 i32.shl i32.add local.get $1 i32.store16 $0 else + local.get $6 local.get $5 - local.get $4 i32.const 1 i32.shl i32.add @@ -2627,17 +2758,17 @@ i32.shl i32.or i32.store $0 - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 end end end end else + local.get $6 local.get $5 - local.get $4 i32.const 1 i32.shl i32.add @@ -2647,19 +2778,19 @@ i32.load8_u $0 i32.store16 $0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 - local.get $4 + local.set $7 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end + local.get $6 local.get $5 - local.get $4 i32.const 1 i32.shl call $~lib/rt/itcms/__renew @@ -5275,6 +5406,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5299,7 +5431,7 @@ i32.load $0 offset=16 i32.const 1 i32.shr_u - local.tee $6 + local.tee $8 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -5310,62 +5442,62 @@ return end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.const 2 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $9 i32.store $0 loop $for-loop|0 - local.get $3 - local.get $6 + local.get $2 + local.get $8 i32.lt_u if local.get $0 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.tee $1 + local.tee $4 i32.const 7 i32.shr_u if block $for-continue|0 - local.get $1 + local.get $4 i32.const 55295 i32.sub i32.const 1025 i32.lt_u - local.get $3 - local.get $6 + local.get $2 + local.get $8 i32.const 1 i32.sub i32.lt_u i32.and if local.get $0 - local.get $3 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_u $0 offset=2 - local.tee $7 + local.tee $3 i32.const 56319 i32.sub i32.const 1025 i32.lt_u if - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 - local.get $7 + local.set $2 + local.get $3 i32.const 1023 i32.and - local.get $1 - local.tee $2 + local.get $4 + local.tee $1 i32.const 1023 i32.and i32.const 10 @@ -5373,148 +5505,148 @@ i32.or i32.const 65536 i32.add - local.tee $1 + local.tee $4 i32.const 131072 i32.ge_u if - local.get $5 - local.get $4 + local.get $9 + local.get $10 i32.const 1 i32.shl i32.add - local.get $2 - local.get $7 + local.get $1 + local.get $3 i32.const 16 i32.shl i32.or i32.store $0 - local.get $4 + local.get $10 i32.const 1 i32.add - local.set $4 + local.set $10 br $for-continue|0 end end end - local.get $1 + local.get $4 i32.const 304 i32.eq if - local.get $5 - local.get $4 + local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.const 50790505 i32.store $0 - local.get $4 + local.get $10 i32.const 1 i32.add - local.set $4 + local.set $10 else - local.get $1 + local.get $4 i32.const 931 i32.eq if - local.get $5 - local.get $4 + local.get $9 + local.get $10 i32.const 1 i32.shl i32.add i32.const 962 i32.const 963 - local.get $6 + local.get $8 i32.const 1 i32.gt_u if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) i32.const 0 local.set $1 - local.get $3 - local.tee $2 + local.get $2 + local.tee $3 i32.const 30 i32.sub - local.tee $7 + local.tee $4 i32.const 0 - local.get $7 + local.get $4 i32.const 0 i32.ge_s select - local.set $8 + local.set $7 loop $while-continue|1 - local.get $2 - local.get $8 + local.get $3 + local.get $7 i32.gt_s if - block $~lib/util/string/codePointBefore|inlined.0 (result i32) - i32.const -1 - local.get $2 + i32.const -1 + local.set $4 + block $~lib/util/string/codePointBefore|inlined.0 + local.get $3 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - drop local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.sub i32.const 1 i32.shl i32.add i32.load16_u $0 - local.tee $9 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq - local.get $2 + local.get $3 i32.const 2 i32.sub i32.const 0 i32.ge_s i32.and if + local.get $5 + i32.const 1023 + i32.and local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.sub i32.const 1 i32.shl i32.add i32.load16_u $0 - local.tee $7 + local.tee $6 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + i32.const 65536 + i32.add + local.set $4 + local.get $6 i32.const 64512 i32.and i32.const 55296 i32.eq - if - local.get $9 - i32.const 1023 - i32.and - local.get $7 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - i32.const 65536 - i32.add - br $~lib/util/string/codePointBefore|inlined.0 - end + br_if $~lib/util/string/codePointBefore|inlined.0 end i32.const 65533 - local.get $9 - local.get $9 + local.get $5 + local.get $5 i32.const 63488 i32.and i32.const 55296 i32.eq select + local.set $4 end - local.tee $7 + local.get $4 i32.const 918000 i32.lt_u if (result i32) - local.get $7 + local.get $4 i32.const 8 i32.shr_u i32.const 7212 @@ -5524,14 +5656,14 @@ i32.shl i32.const 7212 i32.add - local.get $7 + local.get $4 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u $0 - local.get $7 + local.get $4 i32.const 7 i32.and i32.shr_u @@ -5543,11 +5675,11 @@ i32.eqz if i32.const 0 - local.get $7 + local.get $4 i32.const 127370 i32.lt_u if (result i32) - local.get $7 + local.get $4 i32.const 8 i32.shr_u i32.const 10220 @@ -5557,14 +5689,14 @@ i32.shl i32.const 10220 i32.add - local.get $7 + local.get $4 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u $0 - local.get $7 + local.get $4 i32.const 7 i32.and i32.shr_u @@ -5579,14 +5711,14 @@ i32.const 1 local.set $1 end - local.get $2 - local.get $7 + local.get $3 + local.get $4 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $2 + local.set $3 br $while-continue|1 end end @@ -5595,26 +5727,26 @@ i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop - local.get $3 + local.get $2 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 30 i32.add local.tee $1 - local.get $6 + local.get $8 local.get $1 - local.get $6 + local.get $8 i32.lt_s select - local.set $7 + local.set $5 loop $while-continue|2 - local.get $2 - local.get $7 + local.get $3 + local.get $5 i32.lt_s if local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add @@ -5624,20 +5756,20 @@ i32.and i32.const 55296 i32.eq - local.get $2 + local.get $3 i32.const 1 i32.add - local.get $6 + local.get $8 i32.ne i32.and if local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_u $0 offset=2 - local.tee $8 + local.tee $4 i32.const 64512 i32.and i32.const 56320 @@ -5646,7 +5778,7 @@ local.get $1 i32.const 10 i32.shl - local.get $8 + local.get $4 i32.add i32.const 56613888 i32.sub @@ -5718,14 +5850,14 @@ i32.eqz br $~lib/util/string/isFinalSigma|inlined.0 end - local.get $2 + local.get $3 local.get $1 i32.const 65536 i32.ge_u i32.const 1 i32.add i32.add - local.set $2 + local.set $3 br $while-continue|2 end end @@ -5737,23 +5869,23 @@ select i32.store16 $0 else - local.get $1 + local.get $4 i32.const 9398 i32.sub i32.const 25 i32.le_u if - local.get $5 - local.get $4 + local.get $9 + local.get $10 i32.const 1 i32.shl i32.add - local.get $1 + local.get $4 i32.const 26 i32.add i32.store16 $0 else - local.get $1 + local.get $4 i32.const 0 call $~lib/util/casemap/casemap i32.const 2097151 @@ -5762,16 +5894,16 @@ i32.const 65536 i32.lt_u if - local.get $5 - local.get $4 + local.get $9 + local.get $10 i32.const 1 i32.shl i32.add local.get $1 i32.store16 $0 else - local.get $5 - local.get $4 + local.get $9 + local.get $10 i32.const 1 i32.shl i32.add @@ -5792,40 +5924,40 @@ i32.shl i32.or i32.store $0 - local.get $4 + local.get $10 i32.const 1 i32.add - local.set $4 + local.set $10 end end end end end else - local.get $5 - local.get $4 + local.get $9 + local.get $10 i32.const 1 i32.shl i32.add - local.get $1 + local.get $4 i32.const 7084 i32.add i32.load8_u $0 i32.store16 $0 end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 - local.get $4 + local.set $2 + local.get $10 i32.const 1 i32.add - local.set $4 + local.set $10 br $for-loop|0 end end - local.get $5 - local.get $4 + local.get $9 + local.get $10 i32.const 1 i32.shl call $~lib/rt/itcms/__renew @@ -6189,146 +6321,18 @@ local.get $3 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 53848 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 21056 - i32.load $0 - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 21060 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 - local.get $0 - local.get $1 local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 6442d61cd3..0e09cecec0 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -72,6 +72,7 @@ i32.const 20 i32.sub call $~lib/rt/common/OBJECT#get:rtSize + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -91,6 +92,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -103,17 +105,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -125,8 +128,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -269,6 +270,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -288,6 +290,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -373,15 +376,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -408,6 +408,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -583,22 +584,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -623,16 +627,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -728,18 +735,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -763,18 +773,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -784,12 +797,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -937,22 +953,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -997,16 +1016,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1061,10 +1083,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1180,6 +1205,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1189,15 +1215,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1258,17 +1282,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1280,22 +1302,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1368,6 +1388,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1428,8 +1449,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1474,8 +1493,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1525,8 +1542,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1608,6 +1623,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1686,6 +1702,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1701,6 +1718,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1791,16 +1809,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1833,16 +1854,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1856,46 +1880,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1932,10 +1963,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2055,30 +2089,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2149,6 +2189,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2161,6 +2202,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2223,6 +2265,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2231,6 +2274,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/string/String.UTF16.encodeUnsafe (type $i32_i32_i32_=>_i32) (param $str i32) (param $len i32) (param $buf i32) (result i32) (local $size i32) @@ -2243,24 +2287,26 @@ local.get $size memory.copy $0 $0 local.get $size + return ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub call $~lib/rt/common/OBJECT#get:rtSize + return ) (func $~lib/string/String.UTF16.decode (type $i32_=>_i32) (param $buf i32) (result i32) local.get $buf local.get $buf call $~lib/arraybuffer/ArrayBuffer#get:byteLength call $~lib/string/String.UTF16.decodeUnsafe + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2331,8 +2377,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2361,6 +2405,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2403,12 +2448,12 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/string/String.UTF8.byteLength (type $i32_i32_=>_i32) (param $str i32) (param $nullTerminated i32) (result i32) (local $strOff i32) (local $strEnd i32) (local $bufLen i32) - (local $5 i32) (local $c1 i32) local.get $str local.set $strOff @@ -2428,8 +2473,6 @@ local.get $strOff local.get $strEnd i32.lt_u - local.set $5 - local.get $5 if local.get $strOff i32.load16_u $0 @@ -2507,23 +2550,23 @@ end end local.get $bufLen + return ) (func $~lib/string/String.UTF8.encodeUnsafe (type $i32_i32_i32_i32_i32_=>_i32) (param $str i32) (param $len i32) (param $buf i32) (param $nullTerminated i32) (param $errorMode i32) (result i32) (local $strEnd i32) (local $bufOff i32) - (local $7 i32) (local $c1 i32) (local $b0 i32) (local $b1 i32) (local $c2 i32) - (local $b0|12 i32) - (local $b1|13 i32) + (local $b0|11 i32) + (local $b1|12 i32) (local $b2 i32) (local $b3 i32) - (local $b0|16 i32) - (local $b1|17 i32) - (local $b2|18 i32) - (local $19 i32) + (local $b0|15 i32) + (local $b1|16 i32) + (local $b2|17 i32) + (local $18 i32) local.get $str local.get $len i32.const 1 @@ -2536,8 +2579,6 @@ local.get $str local.get $strEnd i32.lt_u - local.set $7 - local.get $7 if local.get $str i32.load16_u $0 @@ -2637,7 +2678,7 @@ i32.shr_u i32.const 240 i32.or - local.set $b0|12 + local.set $b0|11 local.get $c1 i32.const 12 i32.shr_u @@ -2645,7 +2686,7 @@ i32.and i32.const 128 i32.or - local.set $b1|13 + local.set $b1|12 local.get $c1 i32.const 6 i32.shr_u @@ -2668,11 +2709,11 @@ i32.const 16 i32.shl i32.or - local.get $b1|13 + local.get $b1|12 i32.const 8 i32.shl i32.or - local.get $b0|12 + local.get $b0|11 i32.or i32.store $0 local.get $bufOff @@ -2710,7 +2751,7 @@ i32.shr_u i32.const 224 i32.or - local.set $b0|16 + local.set $b0|15 local.get $c1 i32.const 6 i32.shr_u @@ -2718,22 +2759,22 @@ i32.and i32.const 128 i32.or - local.set $b1|17 + local.set $b1|16 local.get $c1 i32.const 63 i32.and i32.const 128 i32.or - local.set $b2|18 + local.set $b2|17 local.get $bufOff - local.get $b1|17 + local.get $b1|16 i32.const 8 i32.shl - local.get $b0|16 + local.get $b0|15 i32.or i32.store16 $0 local.get $bufOff - local.get $b2|18 + local.get $b2|17 i32.store8 $0 offset=2 local.get $bufOff i32.const 3 @@ -2751,17 +2792,18 @@ local.get $nullTerminated if local.get $bufOff - local.tee $19 + local.tee $18 i32.const 1 i32.add local.set $bufOff - local.get $19 + local.get $18 i32.const 0 i32.store8 $0 end local.get $bufOff local.get $buf i32.sub + return ) (func $~lib/string/String.UTF8.encode@varargs (type $i32_i32_i32_=>_i32) (param $str i32) (param $nullTerminated i32) (param $errorMode i32) (result i32) block $2of2 @@ -2834,6 +2876,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/string/String.UTF8.decode (type $i32_i32_=>_i32) (param $buf i32) (param $nullTerminated i32) (result i32) local.get $buf @@ -2841,10 +2884,9 @@ call $~lib/arraybuffer/ArrayBuffer#get:byteLength local.get $nullTerminated call $~lib/string/String.UTF8.decodeUnsafe + return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2855,8 +2897,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2870,8 +2910,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -4749,6 +4787,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 + return ) (func $~lib/string/String.UTF16.decodeUnsafe (type $i32_i32_=>_i32) (param $buf i32) (param $len i32) (result i32) (local $str i32) @@ -4783,6 +4822,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/string/String.UTF8.encode (type $i32_i32_i32_=>_i32) (param $str i32) (param $nullTerminated i32) (param $errorMode i32) (result i32) (local $buf i32) @@ -4818,19 +4858,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $~lib/string/String.UTF8.decodeUnsafe (type $i32_i32_i32_=>_i32) (param $buf i32) (param $len i32) (param $nullTerminated i32) (result i32) (local $bufOff i32) (local $bufEnd i32) (local $str i32) (local $strOff i32) - (local $7 i32) (local $u0 i32) (local $u1 i32) (local $u2 i32) (local $lo i32) (local $hi i32) - (local $13 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4872,8 +4912,6 @@ local.get $bufOff local.get $bufEnd i32.lt_u - local.set $7 - local.get $7 if local.get $bufOff i32.load8_u $0 @@ -5044,11 +5082,12 @@ local.get $str i32.sub call $~lib/rt/itcms/__renew - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 + local.get $12 + return ) ) diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index ed172e830c..5ad98596a6 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -120,6 +120,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 55572 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 22784 + i32.load $0 + i32.gt_u + if + i32.const 1344 + i32.const 1408 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 22788 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -3990,146 +4122,18 @@ local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 55572 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 22784 - i32.load $0 - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 22788 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/std/string-nonnull.debug.wat b/tests/compiler/std/string-nonnull.debug.wat index 2d4d4bfe88..6b3eea3096 100644 --- a/tests/compiler/std/string-nonnull.debug.wat +++ b/tests/compiler/std/string-nonnull.debug.wat @@ -29,12 +29,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -105,8 +105,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -135,6 +133,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -177,12 +176,14 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/string/String.__ne (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String.__eq i32.eqz + return ) (func $~lib/string/String.__not (type $i32_=>_i32) (param $str i32) (result i32) local.get $str @@ -195,6 +196,7 @@ call $~lib/string/String#get:length i32.eqz end + return ) (func $start:std/string-nonnull (type $none_=>_none) (local $s i32) diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index ab8d0f1270..1d3c2fa232 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -559,12 +559,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -635,8 +635,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -665,6 +663,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -707,6 +706,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/string/String#charCodeAt (type $i32_i32_=>_i32) (param $this i32) (param $pos i32) (result i32) local.get $pos @@ -723,6 +723,7 @@ i32.shl i32.add i32.load16_u $0 + return ) (func $~lib/string/String#codePointAt (type $i32_i32_=>_i32) (param $this i32) (param $pos i32) (result i32) (local $len i32) @@ -790,6 +791,7 @@ i32.add i32.const 65536 i32.add + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -809,6 +811,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -821,17 +824,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -843,8 +847,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -987,6 +989,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -1006,6 +1009,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -1091,15 +1095,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -1126,6 +1127,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -1301,22 +1303,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -1341,16 +1346,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -1446,18 +1454,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1481,18 +1492,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1502,12 +1516,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1655,22 +1672,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1715,16 +1735,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1779,10 +1802,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1898,6 +1924,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1907,15 +1934,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1976,17 +2001,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1998,22 +2021,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -2086,6 +2107,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -2146,8 +2168,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -2192,8 +2212,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -2243,8 +2261,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -2326,6 +2342,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -2404,6 +2421,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -2419,6 +2437,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -2509,16 +2528,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2551,16 +2573,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2574,46 +2599,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2650,10 +2682,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2773,30 +2808,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2867,6 +2908,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2879,6 +2921,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2941,6 +2984,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/string/String#at (type $i32_i32_=>_i32) (param $this i32) (param $pos i32) (result i32) (local $len i32) @@ -2981,6 +3025,7 @@ i32.load16_u $0 i32.store16 $0 local.get $out + return ) (func $~lib/string/String.__not (type $i32_=>_i32) (param $str i32) (result i32) local.get $str @@ -2993,6 +3038,7 @@ call $~lib/string/String#get:length i32.eqz end + return ) (func $~lib/string/String.fromCharCode@varargs (type $i32_i32_=>_i32) (param $unit i32) (param $surr i32) (result i32) block $1of1 @@ -3026,6 +3072,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -3102,6 +3149,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -3153,6 +3201,7 @@ local.get $searchLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/string/String#endsWith (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $end i32) (result i32) (local $3 i32) @@ -3199,6 +3248,26 @@ local.get $searchLength call $~lib/util/string/compareImpl i32.eqz + return + ) + (func $~lib/string/String#endsWith@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $end 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 + global.get $~lib/string/String.MAX_LENGTH + local.set $end + end + local.get $this + local.get $search + local.get $end + call $~lib/string/String#endsWith ) (func $~lib/string/String#indexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $start i32) (result i32) (local $searchLen i32) @@ -3208,7 +3277,6 @@ (local $7 i32) (local $8 i32) (local $searchStart i32) - (local $10 i32) local.get $search call $~lib/string/String#get:length local.set $searchLen @@ -3251,8 +3319,6 @@ local.get $searchStart local.get $len i32.le_s - local.set $10 - local.get $10 if local.get $this local.get $searchStart @@ -3273,6 +3339,7 @@ end end i32.const -1 + return ) (func $~lib/string/String#includes (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $start i32) (result i32) local.get $this @@ -3281,11 +3348,11 @@ call $~lib/string/String#indexOf i32.const -1 i32.ne + return ) (func $~lib/memory/memory.repeat (type $i32_i32_i32_i32_=>_none) (param $dst i32) (param $src i32) (param $srcLength i32) (param $count i32) (local $index i32) (local $total i32) - (local $6 i32) i32.const 0 local.set $index local.get $srcLength @@ -3296,8 +3363,6 @@ local.get $index local.get $total i32.lt_u - local.set $6 - local.get $6 if local.get $dst local.get $index @@ -3321,7 +3386,6 @@ (local $7 i32) (local $8 i32) (local $searchStart i32) - (local $10 i32) local.get $search call $~lib/string/String#get:length local.set $searchLen @@ -3363,8 +3427,6 @@ local.get $searchStart i32.const 0 i32.ge_s - local.set $10 - local.get $10 if local.get $this local.get $searchStart @@ -3385,6 +3447,26 @@ end end i32.const -1 + return + ) + (func $~lib/string/String#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $start 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $start + end + local.get $this + local.get $search + local.get $start + call $~lib/string/String#lastIndexOf ) (func $~lib/string/String#localeCompare (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $alen i32) @@ -3435,6 +3517,7 @@ i32.const 0 i32.lt_s i32.sub + return ) (func $~lib/util/string/isSpace (type $i32_=>_i32) (param $c i32) (result i32) (local $1 i32) @@ -3521,12 +3604,11 @@ return end i32.const 0 + return ) (func $~lib/util/string/strtob (type $i32_=>_i32) (param $str i32) (result i32) (local $size i32) (local $offset i32) - (local $3 i32) - (local $4 i32) local.get $str call $~lib/string/String#get:length i32.const 1 @@ -3551,8 +3633,6 @@ else i32.const 0 end - local.set $3 - local.get $3 if local.get $size i32.const 2 @@ -3578,8 +3658,6 @@ else i32.const 0 end - local.set $4 - local.get $4 if local.get $offset i32.const 2 @@ -3607,18 +3685,17 @@ i64.load $0 i64.const 28429475166421108 i64.eq + return ) (func $~lib/util/string/strtol (type $i32_i32_=>_f64) (param $str i32) (param $radix i32) (result f64) (local $len i32) (local $ptr i32) (local $code i32) - (local $5 i32) (local $sign f64) - (local $7 i32) + (local $6 i32) (local $num f64) (local $initial i32) - (local $10 i32) - (local $11 i32) + (local $9 i32) local.get $str call $~lib/string/String#get:length local.set $len @@ -3638,8 +3715,6 @@ loop $while-continue|0 local.get $code call $~lib/util/string/isSpace - local.set $5 - local.get $5 if local.get $ptr i32.const 2 @@ -3765,16 +3840,16 @@ i32.load16_u $0 offset=2 i32.const 32 i32.or - local.set $7 - local.get $7 + local.set $6 + local.get $6 i32.const 98 i32.eq br_if $case0|1 - local.get $7 + local.get $6 i32.const 111 i32.eq br_if $case1|1 - local.get $7 + local.get $6 i32.const 120 i32.eq br_if $case2|1 @@ -3833,13 +3908,11 @@ block $while-break|2 loop $while-continue|2 local.get $len - local.tee $10 + local.tee $9 i32.const 1 i32.sub local.set $len - local.get $10 - local.set $11 - local.get $11 + local.get $9 if local.get $ptr i32.load16_u $0 @@ -3921,17 +3994,18 @@ local.get $sign local.get $num f64.mul + return ) (func $~lib/string/parseInt (type $i32_i32_=>_f64) (param $str i32) (param $radix i32) (result f64) local.get $str local.get $radix call $~lib/util/string/strtol + return ) (func $~lib/math/ipow32 (type $i32_i32_=>_i32) (param $x i32) (param $e i32) (result i32) (local $out i32) (local $log i32) (local $4 i32) - (local $5 i32) i32.const 1 local.set $out i32.const 0 @@ -4122,8 +4196,6 @@ end loop $while-continue|1 local.get $e - local.set $5 - local.get $5 if local.get $e i32.const 1 @@ -4146,6 +4218,7 @@ end end local.get $out + return ) (func $~lib/math/NativeMath.scalbn (type $f64_i32_=>_f64) (param $x f64) (param $n i32) (result f64) (local $y f64) @@ -4239,70 +4312,63 @@ i64.shl f64.reinterpret_i64 f64.mul + return ) (func $~lib/util/string/strtod (type $i32_=>_f64) (param $str i32) (result f64) (local $len i32) (local $ptr i32) (local $code i32) (local $sign f64) - (local $5 i32) (local $savedPtr i32) - (local $7 i32) (local $pointed i32) (local $consumed i32) (local $position i32) (local $x i64) (local $noDigits i32) - (local $13 i32) (local $digit i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $ptr|18 i32) - (local $len|19 i32) - (local $sign|20 i32) + (local $12 i32) + (local $13 i32) + (local $ptr|14 i32) + (local $len|15 i32) + (local $sign|16 i32) (local $magnitude i32) - (local $code|22 i32) - (local $23 i32) - (local $digit|24 i32) - (local $25 i32) + (local $code|18 i32) + (local $digit|19 i32) (local $significand i64) (local $exp i32) (local $significandf f64) (local $n i32) - (local $30 i32) - (local $31 i32) - (local $n|32 i32) - (local $n|33 i32) - (local $significand|34 i64) - (local $exp|35 i32) + (local $24 i32) + (local $25 i32) + (local $n|26 i32) + (local $n|27 i32) + (local $significand|28 i64) + (local $exp|29 i32) (local $shift i64) - (local $37 i32) (local $q i64) (local $r i64) (local $s i64) (local $b i64) - (local $q|42 i64) - (local $r|43 i64) - (local $s|44 i64) - (local $significand|45 i64) - (local $exp|46 i32) - (local $shift|47 i64) - (local $48 i32) + (local $q|35 i64) + (local $r|36 i64) + (local $s|37 i64) + (local $significand|38 i64) + (local $exp|39 i32) + (local $shift|40 i64) (local $a i64) - (local $b|50 i32) + (local $b|42 i32) (local $low i64) (local $high i64) (local $overflow i32) (local $space i32) (local $revspace i64) - (local $a|56 i64) - (local $b|57 i32) - (local $low|58 i64) - (local $high|59 i64) - (local $overflow|60 i32) - (local $space|61 i32) - (local $revspace|62 i64) + (local $a|48 i64) + (local $b|49 i32) + (local $low|50 i64) + (local $high|51 i64) + (local $overflow|52 i32) + (local $space|53 i32) + (local $revspace|54 i64) local.get $str call $~lib/string/String#get:length local.set $len @@ -4327,8 +4393,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $ptr i32.const 2 @@ -4446,8 +4510,6 @@ local.get $code i32.const 48 i32.eq - local.set $7 - local.get $7 if local.get $ptr i32.const 2 @@ -4515,8 +4577,6 @@ local.tee $code i32.const 48 i32.eq - local.set $13 - local.get $13 if local.get $len i32.const 1 @@ -4585,8 +4645,6 @@ i32.const 0 end end - local.set $15 - local.get $15 if local.get $digit i32.const 10 @@ -4654,27 +4712,27 @@ local.set $significand local.get $position i32.const 19 - local.tee $16 + local.tee $12 local.get $consumed - local.tee $17 - local.get $16 - local.get $17 + local.tee $13 + local.get $12 + local.get $13 i32.lt_s select i32.sub block $~lib/util/string/parseExp|inlined.0 (result i32) local.get $ptr - local.set $ptr|18 + local.set $ptr|14 local.get $len - local.set $len|19 + local.set $len|15 i32.const 1 - local.set $sign|20 + local.set $sign|16 i32.const 0 local.set $magnitude - local.get $ptr|18 + local.get $ptr|14 i32.load16_u $0 - local.set $code|22 - local.get $code|22 + local.set $code|18 + local.get $code|18 i32.const 32 i32.or i32.const 101 @@ -4683,110 +4741,106 @@ i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $len|19 + local.get $len|15 i32.const 1 i32.sub - local.tee $len|19 + local.tee $len|15 i32.eqz if i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $ptr|18 + local.get $ptr|14 i32.const 2 i32.add - local.tee $ptr|18 + local.tee $ptr|14 i32.load16_u $0 - local.set $code|22 - local.get $code|22 + local.set $code|18 + local.get $code|18 i32.const 45 i32.eq if - local.get $len|19 + local.get $len|15 i32.const 1 i32.sub - local.tee $len|19 + local.tee $len|15 i32.eqz if i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $ptr|18 + local.get $ptr|14 i32.const 2 i32.add - local.tee $ptr|18 + local.tee $ptr|14 i32.load16_u $0 - local.set $code|22 + local.set $code|18 i32.const -1 - local.set $sign|20 + local.set $sign|16 else - local.get $code|22 + local.get $code|18 i32.const 43 i32.eq if - local.get $len|19 + local.get $len|15 i32.const 1 i32.sub - local.tee $len|19 + local.tee $len|15 i32.eqz if i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $ptr|18 + local.get $ptr|14 i32.const 2 i32.add - local.tee $ptr|18 + local.tee $ptr|14 i32.load16_u $0 - local.set $code|22 + local.set $code|18 end end loop $while-continue|4 - local.get $code|22 + local.get $code|18 i32.const 48 i32.eq - local.set $23 - local.get $23 if - local.get $len|19 + local.get $len|15 i32.const 1 i32.sub - local.tee $len|19 + local.tee $len|15 i32.eqz if i32.const 0 br $~lib/util/string/parseExp|inlined.0 end - local.get $ptr|18 + local.get $ptr|14 i32.const 2 i32.add - local.tee $ptr|18 + local.tee $ptr|14 i32.load16_u $0 - local.set $code|22 + local.set $code|18 br $while-continue|4 end end - local.get $code|22 + local.get $code|18 i32.const 48 i32.sub - local.set $digit|24 + local.set $digit|19 loop $for-loop|5 - local.get $len|19 + local.get $len|15 if (result i32) - local.get $digit|24 + local.get $digit|19 i32.const 10 i32.lt_u else i32.const 0 end - local.set $25 - local.get $25 if local.get $magnitude i32.const 3200 i32.ge_s if - local.get $sign|20 + local.get $sign|16 i32.const 3200 i32.mul br $~lib/util/string/parseExp|inlined.0 @@ -4794,29 +4848,30 @@ i32.const 10 local.get $magnitude i32.mul - local.get $digit|24 + local.get $digit|19 i32.add local.set $magnitude - local.get $ptr|18 + local.get $ptr|14 i32.const 2 i32.add - local.tee $ptr|18 + local.tee $ptr|14 i32.load16_u $0 - local.set $code|22 - local.get $len|19 + local.set $code|18 + local.get $len|15 i32.const 1 i32.sub - local.set $len|19 - local.get $code|22 + local.set $len|15 + local.get $code|18 i32.const 48 i32.sub - local.set $digit|24 + local.set $digit|19 br $for-loop|5 end end - local.get $sign|20 + local.get $sign|16 local.get $magnitude i32.mul + br $~lib/util/string/parseExp|inlined.0 end i32.add local.set $exp @@ -4865,16 +4920,19 @@ end if local.get $significandf - local.get $exp - i32.const 22 - i32.sub - local.set $n - i32.const 3648 - local.get $n - i32.const 3 - i32.shl - i32.add - f64.load $0 + block $~lib/util/string/pow10|inlined.0 (result f64) + local.get $exp + i32.const 22 + i32.sub + local.set $n + i32.const 3648 + local.get $n + i32.const 3 + i32.shl + i32.add + f64.load $0 + br $~lib/util/string/pow10|inlined.0 + end f64.mul local.set $significandf i32.const 22 @@ -4885,13 +4943,13 @@ i64.le_u if (result i32) local.get $exp - local.tee $30 + local.tee $24 i32.const 31 i32.shr_s - local.tee $31 - local.get $30 + local.tee $25 + local.get $24 i32.add - local.get $31 + local.get $25 i32.xor i32.const 22 i32.le_s @@ -4904,28 +4962,34 @@ i32.gt_s if local.get $significandf + block $~lib/util/string/pow10|inlined.1 (result f64) + local.get $exp + local.set $n|26 + i32.const 3648 + local.get $n|26 + i32.const 3 + i32.shl + i32.add + f64.load $0 + br $~lib/util/string/pow10|inlined.1 + end + f64.mul + br $~lib/util/string/scientific|inlined.0 + end + local.get $significandf + block $~lib/util/string/pow10|inlined.2 (result f64) + i32.const 0 local.get $exp - local.set $n|32 + i32.sub + local.set $n|27 i32.const 3648 - local.get $n|32 + local.get $n|27 i32.const 3 i32.shl i32.add f64.load $0 - f64.mul - br $~lib/util/string/scientific|inlined.0 + br $~lib/util/string/pow10|inlined.2 end - local.get $significandf - i32.const 0 - local.get $exp - i32.sub - local.set $n|33 - i32.const 3648 - local.get $n|33 - i32.const 3 - i32.shl - i32.add - f64.load $0 f64.div br $~lib/util/string/scientific|inlined.0 else @@ -4933,188 +4997,260 @@ i32.const 0 i32.lt_s if - local.get $significand - local.set $significand|34 - local.get $exp - local.set $exp|35 - local.get $significand|34 - i64.clz - local.set $shift - local.get $significand|34 - local.get $shift - i64.shl - local.set $significand|34 - local.get $exp|35 - i64.extend_i32_s - local.get $shift - i64.sub - local.set $shift - loop $for-loop|6 - local.get $exp|35 - i32.const -14 - i32.le_s - local.set $37 - local.get $37 - if - local.get $significand|34 - i64.const 6103515625 - i64.div_u - local.set $q - local.get $significand|34 - i64.const 6103515625 - i64.rem_u - local.set $r - local.get $q - i64.clz - local.set $s - local.get $q - local.get $s - i64.shl - f64.const 0.00004294967296 - local.get $r - local.get $s - i64.const 18 - i64.sub - i64.shl - f64.convert_i64_u - f64.mul - f64.nearest - i64.trunc_sat_f64_u - i64.add - local.set $significand|34 - local.get $shift - local.get $s - i64.sub - local.set $shift - local.get $exp|35 - i32.const 14 - i32.add - local.set $exp|35 - br $for-loop|6 + block $~lib/util/string/scaledown|inlined.0 (result f64) + local.get $significand + local.set $significand|28 + local.get $exp + local.set $exp|29 + local.get $significand|28 + i64.clz + local.set $shift + local.get $significand|28 + local.get $shift + i64.shl + local.set $significand|28 + local.get $exp|29 + i64.extend_i32_s + local.get $shift + i64.sub + local.set $shift + loop $for-loop|6 + local.get $exp|29 + i32.const -14 + i32.le_s + if + local.get $significand|28 + i64.const 6103515625 + i64.div_u + local.set $q + local.get $significand|28 + i64.const 6103515625 + i64.rem_u + local.set $r + local.get $q + i64.clz + local.set $s + local.get $q + local.get $s + i64.shl + f64.const 0.00004294967296 + local.get $r + local.get $s + i64.const 18 + i64.sub + i64.shl + f64.convert_i64_u + f64.mul + f64.nearest + i64.trunc_sat_f64_u + i64.add + local.set $significand|28 + local.get $shift + local.get $s + i64.sub + local.set $shift + local.get $exp|29 + i32.const 14 + i32.add + local.set $exp|29 + br $for-loop|6 + end end + i32.const 5 + i32.const 0 + local.get $exp|29 + i32.sub + call $~lib/math/ipow32 + i64.extend_i32_s + local.set $b + local.get $significand|28 + local.get $b + i64.div_u + local.set $q|35 + local.get $significand|28 + local.get $b + i64.rem_u + local.set $r|36 + local.get $q|35 + i64.clz + local.set $s|37 + local.get $q|35 + local.get $s|37 + i64.shl + local.get $r|36 + f64.convert_i64_u + i64.reinterpret_f64 + local.get $s|37 + i64.const 52 + i64.shl + i64.add + f64.reinterpret_i64 + local.get $b + f64.convert_i64_u + f64.div + i64.trunc_sat_f64_u + i64.add + local.set $significand|28 + local.get $shift + local.get $s|37 + i64.sub + local.set $shift + local.get $significand|28 + f64.convert_i64_u + local.get $shift + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn + br $~lib/util/string/scaledown|inlined.0 end - i32.const 5 - i32.const 0 - local.get $exp|35 - i32.sub - call $~lib/math/ipow32 - i64.extend_i32_s - local.set $b - local.get $significand|34 - local.get $b - i64.div_u - local.set $q|42 - local.get $significand|34 - local.get $b - i64.rem_u - local.set $r|43 - local.get $q|42 - i64.clz - local.set $s|44 - local.get $q|42 - local.get $s|44 - i64.shl - local.get $r|43 - f64.convert_i64_u - i64.reinterpret_f64 - local.get $s|44 - i64.const 52 - i64.shl - i64.add - f64.reinterpret_i64 - local.get $b - f64.convert_i64_u - f64.div - i64.trunc_sat_f64_u - i64.add - local.set $significand|34 - local.get $shift - local.get $s|44 - i64.sub - local.set $shift - local.get $significand|34 - f64.convert_i64_u - local.get $shift - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn br $~lib/util/string/scientific|inlined.0 else - local.get $significand - local.set $significand|45 - local.get $exp - local.set $exp|46 - local.get $significand|45 - i64.ctz - local.set $shift|47 - local.get $significand|45 - local.get $shift|47 - i64.shr_u - local.set $significand|45 - local.get $shift|47 - local.get $exp|46 - i64.extend_i32_s - i64.add - local.set $shift|47 - local.get $shift|47 - global.set $~lib/util/string/__fixmulShift - loop $for-loop|7 - local.get $exp|46 - i32.const 13 - i32.ge_s - local.set $48 - local.get $48 - if - local.get $significand|45 - local.set $a - i32.const 1220703125 - local.set $b|50 - local.get $a + block $~lib/util/string/scaleup|inlined.0 (result f64) + local.get $significand + local.set $significand|38 + local.get $exp + local.set $exp|39 + local.get $significand|38 + i64.ctz + local.set $shift|40 + local.get $significand|38 + local.get $shift|40 + i64.shr_u + local.set $significand|38 + local.get $shift|40 + local.get $exp|39 + i64.extend_i32_s + i64.add + local.set $shift|40 + local.get $shift|40 + global.set $~lib/util/string/__fixmulShift + loop $for-loop|7 + local.get $exp|39 + i32.const 13 + i32.ge_s + if + block $~lib/util/string/fixmul|inlined.0 (result i64) + local.get $significand|38 + local.set $a + i32.const 1220703125 + local.set $b|42 + local.get $a + i64.const 4294967295 + i64.and + local.get $b|42 + i64.extend_i32_u + i64.mul + local.set $low + local.get $a + i64.const 32 + i64.shr_u + local.get $b|42 + i64.extend_i32_u + i64.mul + local.get $low + i64.const 32 + i64.shr_u + i64.add + local.set $high + local.get $high + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $overflow + local.get $overflow + i32.clz + local.set $space + i64.const 32 + local.get $space + i64.extend_i32_u + i64.sub + local.set $revspace + global.get $~lib/util/string/__fixmulShift + local.get $revspace + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $high + local.get $space + i64.extend_i32_u + i64.shl + local.get $low + i64.const 4294967295 + i64.and + local.get $revspace + i64.shr_u + i64.or + local.get $low + local.get $space + i64.extend_i32_u + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + i64.add + br $~lib/util/string/fixmul|inlined.0 + end + local.set $significand|38 + local.get $exp|39 + i32.const 13 + i32.sub + local.set $exp|39 + br $for-loop|7 + end + end + block $~lib/util/string/fixmul|inlined.1 (result i64) + local.get $significand|38 + local.set $a|48 + i32.const 5 + local.get $exp|39 + call $~lib/math/ipow32 + local.set $b|49 + local.get $a|48 i64.const 4294967295 i64.and - local.get $b|50 + local.get $b|49 i64.extend_i32_u i64.mul - local.set $low - local.get $a + local.set $low|50 + local.get $a|48 i64.const 32 i64.shr_u - local.get $b|50 + local.get $b|49 i64.extend_i32_u i64.mul - local.get $low + local.get $low|50 i64.const 32 i64.shr_u i64.add - local.set $high - local.get $high + local.set $high|51 + local.get $high|51 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $overflow - local.get $overflow + local.set $overflow|52 + local.get $overflow|52 i32.clz - local.set $space + local.set $space|53 i64.const 32 - local.get $space + local.get $space|53 i64.extend_i32_u i64.sub - local.set $revspace + local.set $revspace|54 global.get $~lib/util/string/__fixmulShift - local.get $revspace + local.get $revspace|54 i64.add global.set $~lib/util/string/__fixmulShift - local.get $high - local.get $space + local.get $high|51 + local.get $space|53 i64.extend_i32_u i64.shl - local.get $low + local.get $low|50 i64.const 4294967295 i64.and - local.get $revspace + local.get $revspace|54 i64.shr_u i64.or - local.get $low - local.get $space + local.get $low|50 + local.get $space|53 i64.extend_i32_u i64.shl i64.const 31 @@ -5122,82 +5258,18 @@ i64.const 1 i64.and i64.add - local.set $significand|45 - local.get $exp|46 - i32.const 13 - i32.sub - local.set $exp|46 - br $for-loop|7 + br $~lib/util/string/fixmul|inlined.1 end + local.set $significand|38 + global.get $~lib/util/string/__fixmulShift + local.set $shift|40 + local.get $significand|38 + f64.convert_i64_u + local.get $shift|40 + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn + br $~lib/util/string/scaleup|inlined.0 end - local.get $significand|45 - local.set $a|56 - i32.const 5 - local.get $exp|46 - call $~lib/math/ipow32 - local.set $b|57 - local.get $a|56 - i64.const 4294967295 - i64.and - local.get $b|57 - i64.extend_i32_u - i64.mul - local.set $low|58 - local.get $a|56 - i64.const 32 - i64.shr_u - local.get $b|57 - i64.extend_i32_u - i64.mul - local.get $low|58 - i64.const 32 - i64.shr_u - i64.add - local.set $high|59 - local.get $high|59 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $overflow|60 - local.get $overflow|60 - i32.clz - local.set $space|61 - i64.const 32 - local.get $space|61 - i64.extend_i32_u - i64.sub - local.set $revspace|62 - global.get $~lib/util/string/__fixmulShift - local.get $revspace|62 - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $high|59 - local.get $space|61 - i64.extend_i32_u - i64.shl - local.get $low|58 - i64.const 4294967295 - i64.and - local.get $revspace|62 - i64.shr_u - i64.or - local.get $low|58 - local.get $space|61 - i64.extend_i32_u - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - i64.add - local.set $significand|45 - global.get $~lib/util/string/__fixmulShift - local.set $shift|47 - local.get $significand|45 - f64.convert_i64_u - local.get $shift|47 - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn br $~lib/util/string/scientific|inlined.0 end unreachable @@ -5206,27 +5278,28 @@ end local.get $sign f64.copysign + return ) (func $~lib/number/F32.parseFloat (type $i32_=>_f32) (param $value i32) (result f32) local.get $value call $~lib/util/string/strtod f32.demote_f64 + return ) (func $~lib/number/F64.parseFloat (type $i32_=>_f64) (param $value i32) (result f64) local.get $value call $~lib/util/string/strtod + return ) (func $~lib/util/string/strtol (type $i32_i32_=>_i32) (param $str i32) (param $radix i32) (result i32) (local $len i32) (local $ptr i32) (local $code i32) - (local $5 i32) (local $sign i32) - (local $7 i32) + (local $6 i32) (local $num i32) (local $initial i32) - (local $10 i32) - (local $11 i32) + (local $9 i32) local.get $str call $~lib/string/String#get:length local.set $len @@ -5246,8 +5319,6 @@ loop $while-continue|0 local.get $code call $~lib/util/string/isSpace - local.set $5 - local.get $5 if local.get $ptr i32.const 2 @@ -5373,16 +5444,16 @@ i32.load16_u $0 offset=2 i32.const 32 i32.or - local.set $7 - local.get $7 + local.set $6 + local.get $6 i32.const 98 i32.eq br_if $case0|1 - local.get $7 + local.get $6 i32.const 111 i32.eq br_if $case1|1 - local.get $7 + local.get $6 i32.const 120 i32.eq br_if $case2|1 @@ -5441,13 +5512,11 @@ block $while-break|2 loop $while-continue|2 local.get $len - local.tee $10 + local.tee $9 i32.const 1 i32.sub local.set $len - local.get $10 - local.set $11 - local.get $11 + local.get $9 if local.get $ptr i32.load16_u $0 @@ -5527,23 +5596,23 @@ local.get $sign local.get $num i32.mul + return ) (func $~lib/number/I32.parseInt (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) local.get $value local.get $radix call $~lib/util/string/strtol + return ) (func $~lib/util/string/strtol (type $i32_i32_=>_i64) (param $str i32) (param $radix i32) (result i64) (local $len i32) (local $ptr i32) (local $code i32) - (local $5 i32) (local $sign i64) - (local $7 i32) + (local $6 i32) (local $num i64) (local $initial i32) - (local $10 i32) - (local $11 i32) + (local $9 i32) local.get $str call $~lib/string/String#get:length local.set $len @@ -5563,8 +5632,6 @@ loop $while-continue|0 local.get $code call $~lib/util/string/isSpace - local.set $5 - local.get $5 if local.get $ptr i32.const 2 @@ -5690,16 +5757,16 @@ i32.load16_u $0 offset=2 i32.const 32 i32.or - local.set $7 - local.get $7 + local.set $6 + local.get $6 i32.const 98 i32.eq br_if $case0|1 - local.get $7 + local.get $6 i32.const 111 i32.eq br_if $case1|1 - local.get $7 + local.get $6 i32.const 120 i32.eq br_if $case2|1 @@ -5758,13 +5825,11 @@ block $while-break|2 loop $while-continue|2 local.get $len - local.tee $10 + local.tee $9 i32.const 1 i32.sub local.set $len - local.get $10 - local.set $11 - local.get $11 + local.get $9 if local.get $ptr i32.load16_u $0 @@ -5846,15 +5911,18 @@ local.get $sign local.get $num i64.mul + return ) (func $~lib/number/I64.parseInt (type $i32_i32_=>_i64) (param $value i32) (param $radix i32) (result i64) local.get $value local.get $radix call $~lib/util/string/strtol + return ) (func $~lib/string/parseFloat (type $i32_=>_f64) (param $str i32) (result f64) local.get $str call $~lib/util/string/strtod + return ) (func $~lib/object/Object.is (type $f64_f64_=>_i32) (param $x f64) (param $y f64) (result i32) i32.const 1 @@ -5882,12 +5950,14 @@ local.get $left local.get $right call $~lib/string/String#concat + return ) (func $~lib/string/String.__ne (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String.__eq i32.eqz + return ) (func $~lib/string/String.__gt (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -5944,6 +6014,7 @@ local.get $rightLength i32.gt_s end + return ) (func $~lib/string/String.__lt (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $rightLength i32) @@ -6000,18 +6071,21 @@ local.get $rightLength i32.lt_s end + return ) (func $~lib/string/String.__gte (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String.__lt i32.eqz + return ) (func $~lib/string/String.__lte (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String.__gt i32.eqz + return ) (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -6061,30 +6135,88 @@ select memory.copy $0 $0 local.get $newPtr + return ) - (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + (func $~lib/string/String#slice@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end local.get $this - i32.load $0 offset=4 + local.get $start + local.get $end + call $~lib/string/String#slice ) - (func $~lib/array/Array<~lib/string/String>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) - local.get $this - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - local.get $value - i32.store $0 - i32.const 1 - drop + (func $~lib/string/String#substr@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $length 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $length + end local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link + local.get $start + local.get $length + call $~lib/string/String#substr ) - (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=12 + (func $~lib/string/String#substring@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end 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 + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $start + local.get $end + call $~lib/string/String#substring + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#__uset (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) + local.get $this + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store $0 + i32.const 1 + drop + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) + local.get $this + i32.load $0 offset=12 ) (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -6228,10 +6360,33 @@ local.get $len call $~lib/array/Array<~lib/string/String>#set:length_ local.get $len + return + ) + (func $~lib/string/String#split@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $separator i32) (param $limit i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $separator + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $limit + end + local.get $this + local.get $separator + local.get $limit + call $~lib/string/String#split ) (func $~lib/array/Array<~lib/string/String>#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array<~lib/string/String>#get:length_ + return ) (func $~lib/util/number/decimalCount32 (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -6289,24 +6444,21 @@ unreachable ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -6365,19 +6517,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 15196 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -6405,13 +6557,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -6432,13 +6584,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -6486,14 +6635,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -6520,8 +6670,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -6542,8 +6690,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -6559,6 +6705,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -6711,7 +6858,6 @@ unreachable ) (func $~lib/util/number/utoa64_dec_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) (local $t i64) (local $r i32) (local $b i32) @@ -6726,8 +6872,6 @@ local.get $num i64.const 100000000 i64.ge_u - local.set $3 - local.get $3 if local.get $num i64.const 100000000 @@ -6842,32 +6986,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $15 i32) (local $d i32) + (local $16 i32) (local $17 i32) - (local $18 i32) (local $tmp i64) - (local $buffer|20 i32) - (local $len|21 i32) - (local $delta|22 i64) + (local $buffer|19 i32) + (local $len|20 i32) + (local $delta|21 i64) (local $rest i64) (local $ten_kappa i64) (local $wp_w i64) (local $lastp i32) (local $digit i32) + (local $d|27 i64) (local $28 i32) - (local $29 i32) - (local $d|30 i64) - (local $31 i32) - (local $buffer|32 i32) - (local $len|33 i32) - (local $delta|34 i64) - (local $rest|35 i64) - (local $ten_kappa|36 i64) - (local $wp_w|37 i64) - (local $lastp|38 i32) - (local $digit|39 i32) - (local $40 i32) + (local $buffer|29 i32) + (local $len|30 i32) + (local $delta|31 i64) + (local $rest|32 i64) + (local $ten_kappa|33 i64) + (local $wp_w|34 i64) + (local $lastp|35 i32) + (local $digit|36 i32) i32.const 0 local.get $mp_exp i32.sub @@ -6904,8 +7044,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $15 - local.get $15 if block $break|1 block $case10|1 @@ -6920,44 +7058,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $17 - local.get $17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -7069,11 +7207,11 @@ if local.get $buffer local.get $len - local.tee $18 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $18 + local.get $17 i32.const 1 i32.shl i32.add @@ -7105,11 +7243,11 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $buffer|20 + local.set $buffer|19 local.get $len - local.set $len|21 + local.set $len|20 local.get $delta - local.set $delta|22 + local.set $delta|21 local.get $tmp local.set $rest i32.const 23248 @@ -7124,8 +7262,8 @@ local.set $ten_kappa local.get $wp_w_frc local.set $wp_w - local.get $buffer|20 - local.get $len|21 + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 @@ -7140,7 +7278,7 @@ local.get $wp_w i64.lt_u if (result i32) - local.get $delta|22 + local.get $delta|21 local.get $rest i64.sub local.get $ten_kappa @@ -7170,8 +7308,6 @@ else i32.const 0 end - local.set $28 - local.get $28 if local.get $digit i32.const 1 @@ -7195,8 +7331,6 @@ end loop $while-continue|4 i32.const 1 - local.set $29 - local.get $29 if local.get $p2 i64.const 10 @@ -7210,8 +7344,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d|30 - local.get $d|30 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -7220,16 +7354,16 @@ if local.get $buffer local.get $len - local.tee $31 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $31 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d|30 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and @@ -7264,79 +7398,77 @@ i64.mul local.set $wp_w_frc local.get $buffer - local.set $buffer|32 + local.set $buffer|29 local.get $len - local.set $len|33 + local.set $len|30 local.get $delta - local.set $delta|34 + local.set $delta|31 local.get $p2 - local.set $rest|35 + local.set $rest|32 local.get $one_frc - local.set $ten_kappa|36 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $wp_w|37 - local.get $buffer|32 - local.get $len|33 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $lastp|38 - local.get $lastp|38 + local.set $lastp|35 + local.get $lastp|35 i32.load16_u $0 - local.set $digit|39 + local.set $digit|36 loop $while-continue|6 - local.get $rest|35 - local.get $wp_w|37 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $delta|34 - local.get $rest|35 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $ten_kappa|36 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $wp_w|37 - local.get $rest|35 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $40 - local.get $40 if - local.get $digit|39 + local.get $digit|36 i32.const 1 i32.sub - local.set $digit|39 - local.get $rest|35 - local.get $ten_kappa|36 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $rest|35 + local.set $rest|32 br $while-continue|6 end end - local.get $lastp|38 - local.get $digit|39 + local.get $lastp|35 + local.get $digit|36 i32.store16 $0 local.get $len return @@ -7349,26 +7481,24 @@ (func $~lib/util/number/prettify (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) (local $i i32) - (local $5 i32) (local $ptr i32) (local $offset i32) - (local $i|8 i32) - (local $9 i32) - (local $buffer|10 i32) - (local $k|11 i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) (local $sign i32) (local $decimals i32) - (local $buffer|14 i32) + (local $buffer|12 i32) (local $num i32) - (local $offset|16 i32) + (local $offset|14 i32) (local $len i32) - (local $buffer|18 i32) - (local $k|19 i32) - (local $sign|20 i32) - (local $decimals|21 i32) - (local $buffer|22 i32) - (local $num|23 i32) - (local $offset|24 i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -7409,8 +7539,6 @@ local.get $i local.get $kk i32.lt_s - local.set $5 - local.get $5 if local.get $buffer local.get $i @@ -7514,25 +7642,23 @@ i32.or i32.store $0 i32.const 2 - local.set $i|8 + local.set $i|7 loop $for-loop|1 - local.get $i|8 + local.get $i|7 local.get $offset i32.lt_s - local.set $9 - local.get $9 if local.get $buffer - local.get $i|8 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 $0 - local.get $i|8 + local.get $i|7 i32.const 1 i32.add - local.set $i|8 + local.set $i|7 br $for-loop|1 end end @@ -7548,51 +7674,54 @@ local.get $buffer i32.const 101 i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $buffer|10 - local.get $kk - i32.const 1 - i32.sub - local.set $k|11 - local.get $k|11 - i32.const 0 - i32.lt_s - local.set $sign - local.get $sign - if - i32.const 0 - local.get $k|11 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $k|11 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 $0 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $k|11 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals - local.get $buffer|10 - local.set $buffer|14 - local.get $k|11 - local.set $num - local.get $decimals - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num - local.get $offset|16 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|10 - i32.const 45 - i32.const 43 - local.get $sign - select - i32.store16 $0 - local.get $decimals local.set $length local.get $length i32.const 2 @@ -7622,53 +7751,56 @@ i32.const 101 i32.store16 $0 offset=2 local.get $length - local.get $buffer - local.get $len - i32.add - i32.const 4 - i32.add - local.set $buffer|18 - local.get $kk - i32.const 1 - i32.sub - local.set $k|19 - local.get $k|19 - i32.const 0 - i32.lt_s - local.set $sign|20 - local.get $sign|20 - if - i32.const 0 - local.get $k|19 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $k|19 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 $0 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $k|19 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals|21 - local.get $buffer|18 - local.set $buffer|22 - local.get $k|19 - local.set $num|23 - local.get $decimals|21 - local.set $offset|24 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|22 - local.get $num|23 - local.get $offset|24 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|18 - i32.const 45 - i32.const 43 - local.get $sign|20 - select - i32.store16 $0 - local.get $decimals|21 i32.add local.set $length local.get $length @@ -7757,375 +7889,393 @@ i32.const 45 i32.store16 $0 end - local.get $value - local.set $value|3 - local.get $buffer - local.set $buffer|4 - local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|12 - local.get $e - i32.const 1 - i32.sub - local.set $exp|13 - local.get $frc|12 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|12 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|12 - local.get $exp|13 - local.get $off - i32.sub - local.set $exp|13 - i32.const 1 - local.get $f - i64.const 4503599627370496 - i64.eq - i32.add - local.set $m - local.get $frc|12 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 22376 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 23072 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $frc - i64.clz - i32.wrap_i64 - local.set $off|20 - local.get $frc - local.get $off|20 - i64.extend_i32_s - i64.shl - local.set $frc - local.get $exp - local.get $off|20 - i32.sub - local.set $exp - global.get $~lib/util/number/_frc_pow - local.set $frc_pow - global.get $~lib/util/number/_exp_pow - local.set $exp_pow - local.get $frc - local.set $u - local.get $frc_pow - local.set $v - local.get $u - i64.const 4294967295 - i64.and - local.set $u0 - local.get $v - i64.const 4294967295 - i64.and - local.set $v0 - local.get $u - i64.const 32 - i64.shr_u - local.set $u1 - local.get $v - i64.const 32 - i64.shr_u - local.set $v1 - local.get $u0 - local.get $v0 - i64.mul - local.set $l - local.get $u1 - local.get $v0 - i64.mul - local.get $l - i64.const 32 - i64.shr_u - i64.add - local.set $t - local.get $u0 - local.get $v1 - i64.mul - local.get $t - i64.const 4294967295 - i64.and - i64.add - local.set $w - local.get $w - i64.const 2147483647 - i64.add - local.set $w - local.get $t - i64.const 32 - i64.shr_u - local.set $t - local.get $w - i64.const 32 - i64.shr_u - local.set $w - local.get $u1 - local.get $v1 - i64.mul - local.get $t - i64.add - local.get $w - i64.add - local.set $w_frc - local.get $exp - local.set $e1 - local.get $exp_pow - local.set $e2 - local.get $e1 - local.get $e2 - i32.add - i32.const 64 - i32.add - local.set $w_exp - global.get $~lib/util/number/_frc_plus - local.set $u|36 - local.get $frc_pow - local.set $v|37 - local.get $u|36 - i64.const 4294967295 - i64.and - local.set $u0|38 - local.get $v|37 - i64.const 4294967295 - i64.and - local.set $v0|39 - local.get $u|36 - i64.const 32 - i64.shr_u - local.set $u1|40 - local.get $v|37 - i64.const 32 - i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 - i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 - i64.mul - local.get $l|42 - i64.const 32 - i64.shr_u - i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.const 4294967295 - i64.and - i64.add - local.set $w|44 - local.get $w|44 - i64.const 2147483647 - i64.add - local.set $w|44 - local.get $t|43 - i64.const 32 - i64.shr_u - local.set $t|43 - local.get $w|44 - i64.const 32 - i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.add - local.get $w|44 - i64.add - i64.const 1 - i64.sub - local.set $wp_frc - global.get $~lib/util/number/_exp - local.set $e1|46 - local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 - i32.add - i32.const 64 - i32.add - local.set $wp_exp - global.get $~lib/util/number/_frc_minus - local.set $u|49 - local.get $frc_pow - local.set $v|50 - local.get $u|49 - i64.const 4294967295 - i64.and - local.set $u0|51 - local.get $v|50 - i64.const 4294967295 - i64.and - local.set $v0|52 - local.get $u|49 - i64.const 32 - i64.shr_u - local.set $u1|53 - local.get $v|50 - i64.const 32 - i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 - i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 - i64.mul - local.get $l|55 - i64.const 32 - i64.shr_u - i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.const 4294967295 - i64.and - i64.add - local.set $w|57 - local.get $w|57 - i64.const 2147483647 - i64.add - local.set $w|57 - local.get $t|56 - i64.const 32 - i64.shr_u - local.set $t|56 - local.get $w|57 - i64.const 32 - i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.add - local.get $w|57 - i64.add - i64.const 1 - i64.add - local.set $wm_frc - local.get $wp_frc - local.get $wm_frc - i64.sub - local.set $delta - local.get $buffer|4 - local.get $w_frc - local.get $w_exp - local.get $wp_frc - local.get $wp_exp - local.get $delta - local.get $sign|5 - call $~lib/util/number/genDigits + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|3 + local.get $buffer + local.set $buffer|4 + local.get $sign + local.set $sign|5 + local.get $value|3 + i64.reinterpret_f64 + local.set $uv + local.get $uv + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv + i64.const 4503599627370495 + i64.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid + i64.add + local.set $frc + local.get $exp + i32.const 1 + local.get $exp + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|12 + local.get $e + i32.const 1 + i32.sub + local.set $exp|13 + local.get $frc|12 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|12 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|12 + local.get $exp|13 + local.get $off + i32.sub + local.set $exp|13 + i32.const 1 + local.get $f + i64.const 4503599627370496 + i64.eq + i32.add + local.set $m + local.get $frc|12 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 22376 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load $0 + global.set $~lib/util/number/_frc_pow + i32.const 23072 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|20 + local.get $frc + local.get $off|20 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|20 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|36 + local.get $frc_pow + local.set $v|37 + local.get $u|36 + i64.const 4294967295 + i64.and + local.set $u0|38 + local.get $v|37 + i64.const 4294967295 + i64.and + local.set $v0|39 + local.get $u|36 + i64.const 32 + i64.shr_u + local.set $u1|40 + local.get $v|37 + i64.const 32 + i64.shr_u + local.set $v1|41 + local.get $u0|38 + local.get $v0|39 + i64.mul + local.set $l|42 + local.get $u1|40 + local.get $v0|39 + i64.mul + local.get $l|42 + i64.const 32 + i64.shr_u + i64.add + local.set $t|43 + local.get $u0|38 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.const 4294967295 + i64.and + i64.add + local.set $w|44 + local.get $w|44 + i64.const 2147483647 + i64.add + local.set $w|44 + local.get $t|43 + i64.const 32 + i64.shr_u + local.set $t|43 + local.get $w|44 + i64.const 32 + i64.shr_u + local.set $w|44 + local.get $u1|40 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.add + local.get $w|44 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|46 + local.get $exp_pow + local.set $e2|47 + local.get $e1|46 + local.get $e2|47 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|49 + local.get $frc_pow + local.set $v|50 + local.get $u|49 + i64.const 4294967295 + i64.and + local.set $u0|51 + local.get $v|50 + i64.const 4294967295 + i64.and + local.set $v0|52 + local.get $u|49 + i64.const 32 + i64.shr_u + local.set $u1|53 + local.get $v|50 + i64.const 32 + i64.shr_u + local.set $v1|54 + local.get $u0|51 + local.get $v0|52 + i64.mul + local.set $l|55 + local.get $u1|53 + local.get $v0|52 + i64.mul + local.get $l|55 + i64.const 32 + i64.shr_u + i64.add + local.set $t|56 + local.get $u0|51 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.const 4294967295 + i64.and + i64.add + local.set $w|57 + local.get $w|57 + i64.const 2147483647 + i64.add + local.set $w|57 + local.get $t|56 + i64.const 32 + i64.shr_u + local.set $t|56 + local.get $w|57 + i64.const 32 + i64.shr_u + local.set $w|57 + local.get $u1|53 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.add + local.get $w|57 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|4 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|5 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 + end local.set $len local.get $buffer local.get $sign @@ -8141,10 +8291,9 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -8155,8 +8304,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -8170,8 +8317,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -8196,6 +8341,7 @@ ) (func $std/string/getString (type $none_=>_i32) (result i32) global.get $std/string/str + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -8276,7 +8422,6 @@ (func $~lib/array/Array<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -8294,8 +8439,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -8389,19 +8532,17 @@ (local $result i32) (local $resultStart i32) (local $i i32) - (local $12 i32) (local $charStr i32) + (local $result|13 i32) (local $result|14 i32) - (local $result|15 i32) (local $end i32) (local $start i32) - (local $i|18 i32) - (local $19 i32) + (local $i|17 i32) (local $len i32) (local $out i32) - (local $len|22 i32) - (local $out|23 i32) - (local $24 i32) + (local $len|20 i32) + (local $out|21 i32) + (local $22 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -8419,12 +8560,12 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $separator @@ -8449,12 +8590,12 @@ local.get $this call $~lib/array/Array<~lib/string/String>#__uset local.get $3 - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $this @@ -8481,12 +8622,12 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $length @@ -8515,8 +8656,6 @@ local.get $i local.get $length i32.lt_s - local.set $12 - local.get $12 if global.get $~lib/memory/__stack_pointer i32.const 2 @@ -8551,12 +8690,12 @@ end end local.get $result - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return else local.get $length @@ -8568,19 +8707,19 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $result|14 + local.tee $result|13 i32.store $0 offset=16 - local.get $result|14 + local.get $result|13 call $~lib/array/Array<~lib/string/String>#get:dataStart i32.const 688 i32.store $0 - local.get $result|14 - local.set $24 + local.get $result|13 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end end @@ -8590,14 +8729,14 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $result|15 + local.tee $result|14 i32.store $0 offset=20 i32.const 0 local.set $end i32.const 0 local.set $start i32.const 0 - local.set $i|18 + local.set $i|17 loop $while-continue|1 local.get $this local.get $separator @@ -8606,8 +8745,6 @@ local.tee $end i32.const -1 i32.xor - local.set $19 - local.get $19 if local.get $end local.get $start @@ -8635,35 +8772,35 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $result|15 + local.get $result|14 local.get $out call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|15 + local.get $result|14 i32.const 688 - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer - local.get $24 + local.get $22 i32.store $0 offset=28 - local.get $24 + local.get $22 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $i|18 + local.get $i|17 i32.const 1 i32.add - local.tee $i|18 + local.tee $i|17 local.get $limit i32.eq if - local.get $result|15 - local.set $24 + local.get $result|14 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $end @@ -8676,67 +8813,68 @@ local.get $start i32.eqz if - local.get $result|15 + local.get $result|14 local.get $this call $~lib/array/Array<~lib/string/String>#push drop - local.get $result|15 - local.set $24 + local.get $result|14 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 return end local.get $length local.get $start i32.sub - local.set $len|22 - local.get $len|22 + local.set $len|20 + local.get $len|20 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $len|22 + local.get $len|20 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $out|23 + local.tee $out|21 i32.store $0 offset=32 - local.get $out|23 + local.get $out|21 local.get $this local.get $start i32.const 1 i32.shl i32.add - local.get $len|22 + local.get $len|20 i32.const 1 i32.shl memory.copy $0 $0 - local.get $result|15 - local.get $out|23 + local.get $result|14 + local.get $out|21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|15 + local.get $result|14 i32.const 688 - local.set $24 + local.set $22 global.get $~lib/memory/__stack_pointer - local.get $24 + local.get $22 i32.store $0 offset=28 - local.get $24 + local.get $22 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $result|15 - local.set $24 + local.get $result|14 + local.set $22 global.get $~lib/memory/__stack_pointer i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $24 + local.get $22 + return ) (func $start:std/string (type $none_=>_none) (local $0 i32) @@ -9459,8 +9597,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/string/String.MAX_LENGTH - call $~lib/string/String#endsWith + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#endsWith@varargs i32.eqz if i32.const 0 @@ -10315,8 +10455,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#lastIndexOf@varargs i32.const 0 i32.eq i32.eqz @@ -10340,8 +10482,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#lastIndexOf@varargs i32.const -1 i32.eq i32.eqz @@ -10365,8 +10509,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#lastIndexOf@varargs global.get $std/string/str local.set $55 global.get $~lib/memory/__stack_pointer @@ -10396,8 +10542,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#lastIndexOf@varargs i32.const 2 i32.eq i32.eqz @@ -10421,8 +10569,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#lastIndexOf@varargs i32.const -1 i32.eq i32.eqz @@ -10446,8 +10596,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#lastIndexOf + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#lastIndexOf@varargs i32.const 15 i32.eq i32.eqz @@ -11172,12 +11324,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2128 - local.tee $6 - i32.store $0 offset=20 - local.get $6 - call $~lib/util/string/strtob + block $~lib/builtins/bool.parse|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 2128 + local.tee $6 + i32.store $0 offset=20 + local.get $6 + call $~lib/util/string/strtob + br $~lib/builtins/bool.parse|inlined.0 + end i32.const 0 i32.ne i32.const 1 @@ -11191,12 +11346,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2176 - local.tee $7 - i32.store $0 offset=24 - local.get $7 - call $~lib/util/string/strtob + block $~lib/builtins/bool.parse|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 2176 + local.tee $7 + i32.store $0 offset=24 + local.get $7 + call $~lib/util/string/strtob + br $~lib/builtins/bool.parse|inlined.1 + end i32.const 0 i32.ne i32.const 1 @@ -11210,12 +11368,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2224 - local.tee $8 - i32.store $0 offset=28 - local.get $8 - call $~lib/util/string/strtob + block $~lib/builtins/bool.parse|inlined.2 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 2224 + local.tee $8 + i32.store $0 offset=28 + local.get $8 + call $~lib/util/string/strtob + br $~lib/builtins/bool.parse|inlined.2 + end i32.const 0 i32.ne i32.const 0 @@ -11229,12 +11390,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 688 - local.tee $9 - i32.store $0 offset=32 - local.get $9 - call $~lib/util/string/strtob + block $~lib/builtins/bool.parse|inlined.3 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 688 + local.tee $9 + i32.store $0 offset=32 + local.get $9 + call $~lib/util/string/strtob + br $~lib/builtins/bool.parse|inlined.3 + end i32.const 0 i32.ne i32.const 0 @@ -11248,12 +11412,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2272 - local.tee $10 - i32.store $0 offset=36 - local.get $10 - call $~lib/util/string/strtob + block $~lib/builtins/bool.parse|inlined.4 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 2272 + local.tee $10 + i32.store $0 offset=36 + local.get $10 + call $~lib/util/string/strtob + br $~lib/builtins/bool.parse|inlined.4 + end i32.const 0 i32.ne i32.const 0 @@ -11267,12 +11434,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2304 - local.tee $11 - i32.store $0 offset=40 - local.get $11 - call $~lib/util/string/strtob + block $~lib/builtins/bool.parse|inlined.5 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 2304 + local.tee $11 + i32.store $0 offset=40 + local.get $11 + call $~lib/util/string/strtob + br $~lib/builtins/bool.parse|inlined.5 + end i32.const 0 i32.ne i32.const 0 @@ -11286,12 +11456,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - local.tee $12 - i32.store $0 offset=44 - local.get $12 - call $~lib/util/string/strtob + block $~lib/builtins/bool.parse|inlined.6 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 2336 + local.tee $12 + i32.store $0 offset=44 + local.get $12 + call $~lib/util/string/strtob + br $~lib/builtins/bool.parse|inlined.6 + end i32.const 0 i32.ne i32.const 0 @@ -11660,27 +11833,30 @@ i32.eqz if i32.const 0 - i32.const 96 - i32.const 137 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 96 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + block $~lib/math/NativeMath.signbit|inlined.0 (result i32) + i32.const 2944 + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store $0 + local.get $55 + i32.const 0 + call $~lib/string/parseInt + local.set $13 + local.get $13 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.const 0 + i64.ne + br $~lib/math/NativeMath.signbit|inlined.0 end - i32.const 2944 - local.set $55 - global.get $~lib/memory/__stack_pointer - local.get $55 - i32.store $0 - local.get $55 - i32.const 0 - call $~lib/string/parseInt - local.set $13 - local.get $13 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.const 0 - i64.ne i32.const 0 i32.ne i32.eqz @@ -12085,13 +12261,16 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3632 - local.tee $22 - i32.store $0 offset=48 - local.get $22 - call $~lib/util/string/strtod - f32.demote_f64 + block $~lib/builtins/f32.parse|inlined.0 (result f32) + global.get $~lib/memory/__stack_pointer + i32.const 3632 + local.tee $22 + i32.store $0 offset=48 + local.get $22 + call $~lib/util/string/strtod + f32.demote_f64 + br $~lib/builtins/f32.parse|inlined.0 + end local.tee $23 local.get $23 f32.ne @@ -12104,12 +12283,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3632 - local.tee $24 - i32.store $0 offset=52 - local.get $24 - call $~lib/util/string/strtod + block $~lib/builtins/f64.parse|inlined.0 (result f64) + global.get $~lib/memory/__stack_pointer + i32.const 3632 + local.tee $24 + i32.store $0 offset=52 + local.get $24 + call $~lib/util/string/strtod + br $~lib/builtins/f64.parse|inlined.0 + end local.tee $25 local.get $25 f64.ne @@ -12141,15 +12323,18 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3856 - local.tee $26 - i32.store $0 offset=56 - i32.const 0 - local.set $27 - local.get $26 - local.get $27 - call $~lib/util/string/strtol + block $~lib/builtins/i32.parse|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3856 + local.tee $26 + i32.store $0 offset=56 + i32.const 0 + local.set $27 + local.get $26 + local.get $27 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.0 + end global.get $~lib/number/I32.MAX_VALUE i32.eq i32.eqz @@ -12180,15 +12365,18 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3904 - local.tee $28 - i32.store $0 offset=60 - i32.const 0 - local.set $29 - local.get $28 - local.get $29 - call $~lib/util/string/strtol + block $~lib/builtins/i64.parse|inlined.0 (result i64) + global.get $~lib/memory/__stack_pointer + i32.const 3904 + local.tee $28 + i32.store $0 offset=60 + i32.const 0 + local.set $29 + local.get $28 + local.get $29 + call $~lib/util/string/strtol + br $~lib/builtins/i64.parse|inlined.0 + end global.get $~lib/number/I64.MAX_VALUE i64.eq i32.eqz @@ -17877,8 +18065,10 @@ i32.store $0 offset=8 local.get $55 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#slice@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -17907,8 +18097,10 @@ i32.store $0 offset=8 local.get $55 i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#slice@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -17937,8 +18129,10 @@ i32.store $0 offset=8 local.get $55 i32.const -5 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#slice@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -18087,8 +18281,10 @@ i32.store $0 offset=8 local.get $55 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substr + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substr@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -18117,8 +18313,10 @@ i32.store $0 offset=8 local.get $55 i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substr + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substr@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -18147,8 +18345,10 @@ i32.store $0 offset=8 local.get $55 i32.const -5 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substr + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substr@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -18387,8 +18587,10 @@ i32.store $0 offset=8 local.get $55 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -18417,8 +18619,10 @@ i32.store $0 offset=8 local.get $55 i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -18447,8 +18651,10 @@ i32.store $0 offset=8 local.get $55 i32.const -5 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -18688,8 +18894,10 @@ i32.store $0 local.get $55 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -18737,8 +18945,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -18767,8 +18977,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -18816,8 +19028,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -18865,8 +19079,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -18952,8 +19168,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -19039,8 +19257,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -19145,8 +19365,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -19251,8 +19473,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -19357,8 +19581,10 @@ local.get $55 i32.store $0 offset=4 local.get $55 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs local.tee $54 i32.store $0 offset=92 local.get $54 @@ -24711,6 +24937,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/string/String.fromCharCode (type $i32_i32_=>_i32) (param $unit i32) (param $surr i32) (result i32) (local $hasSur i32) @@ -24752,6 +24979,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $~lib/rt/__newArray (type $i32_i32_i32_i32_=>_i32) (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) @@ -24804,6 +25032,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/string/String.fromCharCodes (type $i32_=>_i32) (param $units i32) (result i32) (local $length i32) @@ -24811,7 +25040,6 @@ (local $ptr i32) (local $i i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24840,8 +25068,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $out local.get $i @@ -24863,12 +25089,13 @@ end end local.get $out - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 + return ) (func $~lib/string/String.fromCodePoint (type $i32_=>_i32) (param $code i32) (result i32) (local $hasSur i32) @@ -24946,6 +25173,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $5 + return ) (func $~lib/string/String#padStart (type $i32_i32_i32_=>_i32) (param $this i32) (param $length i32) (param $pad i32) (result i32) (local $thisSize i32) @@ -25056,6 +25284,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $11 + return ) (func $~lib/string/String#padEnd (type $i32_i32_i32_=>_i32) (param $this i32) (param $length i32) (param $pad i32) (result i32) (local $thisSize i32) @@ -25170,13 +25399,13 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $11 + return ) (func $~lib/string/String#trimStart (type $i32_=>_i32) (param $this i32) (result i32) (local $size i32) (local $offset i32) - (local $3 i32) (local $out i32) - (local $5 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25205,8 +25434,6 @@ else i32.const 0 end - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -25219,12 +25446,12 @@ i32.eqz if local.get $this - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end local.get $size @@ -25235,12 +25462,12 @@ i32.eqz if i32.const 688 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end global.get $~lib/memory/__stack_pointer @@ -25256,19 +25483,19 @@ local.get $size memory.copy $0 $0 local.get $out - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $~lib/string/String#trimEnd (type $i32_=>_i32) (param $this i32) (result i32) (local $originalSize i32) (local $size i32) - (local $3 i32) (local $out i32) - (local $5 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25297,8 +25524,6 @@ else i32.const 0 end - local.set $3 - local.get $3 if local.get $size i32.const 2 @@ -25311,12 +25536,12 @@ i32.eqz if i32.const 688 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end local.get $size @@ -25324,12 +25549,12 @@ i32.eq if local.get $this - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 return end global.get $~lib/memory/__stack_pointer @@ -25343,21 +25568,20 @@ local.get $size memory.copy $0 $0 local.get $out - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + return ) (func $~lib/string/String#trim (type $i32_=>_i32) (param $this i32) (result i32) (local $len i32) (local $size i32) - (local $3 i32) (local $offset i32) - (local $5 i32) (local $out i32) - (local $7 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25386,8 +25610,6 @@ else i32.const 0 end - local.set $3 - local.get $3 if local.get $size i32.const 2 @@ -25411,8 +25633,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $offset i32.const 2 @@ -25429,12 +25649,12 @@ i32.eqz if i32.const 688 - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 return end local.get $offset @@ -25450,12 +25670,12 @@ end if local.get $this - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 return end global.get $~lib/memory/__stack_pointer @@ -25471,12 +25691,13 @@ local.get $size memory.copy $0 $0 local.get $out - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $5 + return ) (func $~lib/string/String#concat (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $thisSize i32) @@ -25542,6 +25763,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 + return ) (func $~lib/string/String#repeat (type $i32_i32_=>_i32) (param $this i32) (param $count i32) (result i32) (local $length i32) @@ -25638,6 +25860,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $~lib/string/String#replace (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $replacement i32) (result i32) (local $len i32) @@ -25769,6 +25992,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/string/String#replaceAll (type $i32_i32_i32_=>_i32) (param $this i32) (param $search i32) (param $replacement i32) (result i32) (local $thisLen i32) @@ -25778,19 +26002,16 @@ (local $offset i32) (local $i i32) (local $9 i32) - (local $10 i32) (local $prev i32) (local $next i32) (local $outSize i32) + (local $out|13 i32) (local $out|14 i32) - (local $15 i32) - (local $out|16 i32) - (local $offset|17 i32) - (local $outSize|18 i32) - (local $19 i32) + (local $offset|15 i32) + (local $outSize|16 i32) (local $chunk i32) (local $rest i32) - (local $22 i32) + (local $19 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25825,12 +26046,12 @@ call $~lib/string/String.__eq select end - local.set $22 + local.set $19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $19 return end local.get $replacement @@ -25843,12 +26064,12 @@ i32.eqz if local.get $this - local.set $22 + local.set $19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $19 return end global.get $~lib/memory/__stack_pointer @@ -25879,16 +26100,14 @@ local.get $i local.get $thisLen i32.lt_u - local.set $9 - local.get $9 if local.get $out local.get $offset - local.tee $10 + local.tee $9 i32.const 1 i32.add local.set $offset - local.get $10 + local.get $9 i32.const 1 i32.shl i32.add @@ -25921,12 +26140,12 @@ end end local.get $out - local.set $22 + local.set $19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $19 return end i32.const 0 @@ -25945,9 +26164,9 @@ local.get $outSize i32.const 2 call $~lib/rt/itcms/__new - local.tee $out|14 + local.tee $out|13 i32.store $0 offset=4 - local.get $out|14 + local.get $out|13 local.get $this local.get $outSize memory.copy $0 $0 @@ -25959,10 +26178,8 @@ local.tee $next i32.const -1 i32.xor - local.set $15 - local.get $15 if - local.get $out|14 + local.get $out|13 local.get $next i32.const 1 i32.shl @@ -25979,21 +26196,21 @@ br $while-continue|1 end end - local.get $out|14 - local.set $22 + local.get $out|13 + local.set $19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $19 return end i32.const 0 - local.set $out|16 + local.set $out|14 i32.const 0 - local.set $offset|17 + local.set $offset|15 local.get $thisLen - local.set $outSize|18 + local.set $outSize|16 loop $while-continue|2 local.get $this local.get $search @@ -26002,10 +26219,8 @@ local.tee $next i32.const -1 i32.xor - local.set $19 - local.get $19 if - local.get $out|16 + local.get $out|14 call $~lib/string/String.__not if global.get $~lib/memory/__stack_pointer @@ -26014,36 +26229,36 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $out|16 + local.tee $out|14 i32.store $0 offset=8 end local.get $next local.get $prev i32.sub local.set $chunk - local.get $offset|17 + local.get $offset|15 local.get $chunk i32.add local.get $replaceLen i32.add - local.get $outSize|18 + local.get $outSize|16 i32.gt_u if - local.get $outSize|18 + local.get $outSize|16 i32.const 1 i32.shl - local.set $outSize|18 + local.set $outSize|16 global.get $~lib/memory/__stack_pointer - local.get $out|16 - local.get $outSize|18 + local.get $out|14 + local.get $outSize|16 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $out|16 + local.tee $out|14 i32.store $0 offset=8 end - local.get $out|16 - local.get $offset|17 + local.get $out|14 + local.get $offset|15 i32.const 1 i32.shl i32.add @@ -26056,12 +26271,12 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $offset|17 + local.get $offset|15 local.get $chunk i32.add - local.set $offset|17 - local.get $out|16 - local.get $offset|17 + local.set $offset|15 + local.get $out|14 + local.get $offset|15 i32.const 1 i32.shl i32.add @@ -26070,10 +26285,10 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $offset|17 + local.get $offset|15 local.get $replaceLen i32.add - local.set $offset|17 + local.set $offset|15 local.get $next local.get $searchLen i32.add @@ -26081,35 +26296,35 @@ br $while-continue|2 end end - local.get $out|16 + local.get $out|14 if local.get $thisLen local.get $prev i32.sub local.set $rest - local.get $offset|17 + local.get $offset|15 local.get $rest i32.add - local.get $outSize|18 + local.get $outSize|16 i32.gt_u if - local.get $outSize|18 + local.get $outSize|16 i32.const 1 i32.shl - local.set $outSize|18 + local.set $outSize|16 global.get $~lib/memory/__stack_pointer - local.get $out|16 - local.get $outSize|18 + local.get $out|14 + local.get $outSize|16 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $out|16 + local.tee $out|14 i32.store $0 offset=8 end local.get $rest if - local.get $out|16 - local.get $offset|17 + local.get $out|14 + local.get $offset|15 i32.const 1 i32.shl i32.add @@ -26124,38 +26339,39 @@ memory.copy $0 $0 end local.get $rest - local.get $offset|17 + local.get $offset|15 i32.add local.set $rest - local.get $outSize|18 + local.get $outSize|16 local.get $rest i32.gt_u if global.get $~lib/memory/__stack_pointer - local.get $out|16 + local.get $out|14 local.get $rest i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $out|16 + local.tee $out|14 i32.store $0 offset=8 end - local.get $out|16 - local.set $22 + local.get $out|14 + local.set $19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $19 return end local.get $this - local.set $22 + local.set $19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $19 + return ) (func $~lib/string/String#slice (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $len i32) @@ -26272,6 +26488,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $13 + return ) (func $~lib/string/String#substr (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $length i32) (result i32) (local $intStart i32) @@ -26371,6 +26588,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/string/String#substring (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $len i32) @@ -26514,6 +26732,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $22 + return ) (func $~lib/array/Array<~lib/string/String>#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $value i32) @@ -26570,6 +26789,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/util/number/itoa32 (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) (local $sign i32) @@ -26751,6 +26971,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/util/number/utoa32 (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) (local $out i32) @@ -26897,6 +27118,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $12 + return ) (func $~lib/util/number/utoa64 (type $i64_i32_=>_i32) (param $value i64) (param $radix i32) (result i32) (local $out i32) @@ -27083,6 +27305,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $~lib/util/number/itoa64 (type $i64_i32_=>_i32) (param $value i64) (param $radix i32) (result i32) (local $sign i32) @@ -27306,6 +27529,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $18 + return ) (func $~lib/util/number/dtoa (type $f64_=>_i32) (param $value f64) (result i32) (local $size i32) @@ -27389,5 +27613,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) ) diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index f5e49409dc..32cbb9187d 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -2774,6 +2774,26 @@ end i32.const -1 ) + (func $~lib/string/String#lastIndexOf@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#lastIndexOf + ) (func $~lib/string/String#localeCompare (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 @@ -3279,14 +3299,14 @@ i32.sub local.set $6 loop $while-continue|2 - block $while-break|2 - local.get $2 - local.tee $0 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - if + local.get $2 + local.tee $0 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + if + block $while-break|2 local.get $3 i32.load16_u $0 local.tee $0 @@ -4598,14 +4618,14 @@ i32.sub local.set $6 loop $while-continue|2 - block $while-break|2 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - if + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + if + block $while-break|2 local.get $4 local.get $2 i32.load16_u $0 @@ -4879,14 +4899,14 @@ i32.sub local.set $3 loop $while-continue|2 - block $while-break|2 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - if + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + if + block $while-break|2 local.get $6 local.get $2 i32.load16_u $0 @@ -5097,6 +5117,66 @@ memory.copy $0 $0 local.get $2 ) + (func $~lib/string/String#slice@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#slice + ) + (func $~lib/string/String#substr@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#substr + ) + (func $~lib/string/String#substring@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#substring + ) (func $~lib/array/Array<~lib/string/String>#push (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -5196,6 +5276,28 @@ local.get $2 i32.store $0 offset=12 ) + (func $~lib/string/String#split@varargs (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#split + ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $while-continue|0 @@ -6532,17 +6634,17 @@ i32.const 2 i32.shl i32.add - local.set $3 + local.set $2 loop $while-continue|0 local.get $1 - local.get $3 + local.get $2 i32.lt_u if local.get $1 i32.load $0 - local.tee $2 + local.tee $3 if - local.get $2 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $1 @@ -6552,7 +6654,14 @@ br $while-continue|0 end end - br $folding-inner0 + local.get $0 + i32.load $0 + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end unreachable end @@ -6677,7 +6786,7 @@ local.get $5 i32.gt_s select - local.tee $2 + local.tee $1 i32.const 5 i32.const 0 call $~lib/rt/__newArray @@ -6687,11 +6796,11 @@ i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $1 + local.set $2 loop $for-loop|0 local.get $1 local.get $2 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer i32.const 2 @@ -6701,14 +6810,14 @@ i32.store $0 offset=12 local.get $5 local.get $0 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_u $0 i32.store16 $0 local.get $4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add @@ -6721,10 +6830,10 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end @@ -7570,47 +7679,46 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/string/String#endsWith (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $3 - i32.store $0 - local.get $0 - i32.const 2208 - i32.store $0 offset=4 - i32.const 0 - i32.const 536870910 - local.get $3 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 536870910 - i32.gt_u - select - i32.const 2204 - i32.load $0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/string/str + local.tee $3 + i32.store $0 + local.get $0 + i32.const 2208 + i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength + i32.const 536870910 + local.get $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 536870910 + i32.gt_u + select + i32.const 2204 + i32.load $0 + i32.const 1 + i32.shr_u + local.tee $0 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if (result i32) i32.const 1 - i32.shr_u - local.tee $0 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - br_if $__inlined_func$~lib/string/String#endsWith - drop + else local.get $3 local.get $4 i32.const 2208 local.get $0 call $~lib/util/string/compareImpl - i32.eqz end - i32.eqz if i32.const 0 i32.const 1120 @@ -8345,10 +8453,11 @@ local.get $0 i32.const 1712 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength i32.const 1712 i32.const 1712 - i32.const 2147483647 - call $~lib/string/String#lastIndexOf + call $~lib/string/String#lastIndexOf@varargs if i32.const 0 i32.const 1120 @@ -8364,10 +8473,11 @@ local.get $0 i32.const 2176 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength i32.const 1712 i32.const 2176 - i32.const 2147483647 - call $~lib/string/String#lastIndexOf + call $~lib/string/String#lastIndexOf@varargs i32.const -1 i32.ne if @@ -8386,10 +8496,11 @@ local.get $0 i32.const 1712 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $3 i32.const 1712 - i32.const 2147483647 - call $~lib/string/String#lastIndexOf + call $~lib/string/String#lastIndexOf@varargs local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str @@ -8419,10 +8530,11 @@ local.get $0 i32.const 2624 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $3 i32.const 2624 - i32.const 2147483647 - call $~lib/string/String#lastIndexOf + call $~lib/string/String#lastIndexOf@varargs i32.const 2 i32.ne if @@ -8441,10 +8553,11 @@ local.get $0 i32.const 2656 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $3 i32.const 2656 - i32.const 2147483647 - call $~lib/string/String#lastIndexOf + call $~lib/string/String#lastIndexOf@varargs i32.const -1 i32.ne if @@ -8463,10 +8576,11 @@ local.get $0 i32.const 2720 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $3 i32.const 2720 - i32.const 2147483647 - call $~lib/string/String#lastIndexOf + call $~lib/string/String#lastIndexOf@varargs i32.const 15 i32.ne if @@ -14659,10 +14773,11 @@ global.get $~lib/memory/__stack_pointer i32.const 15296 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength i32.const 15296 i32.const 0 - i32.const 2147483647 - call $~lib/string/String#slice + call $~lib/string/String#slice@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14686,10 +14801,11 @@ global.get $std/string/str local.tee $0 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -1 - i32.const 2147483647 - call $~lib/string/String#slice + call $~lib/string/String#slice@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14713,10 +14829,11 @@ global.get $std/string/str local.tee $0 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -5 - i32.const 2147483647 - call $~lib/string/String#slice + call $~lib/string/String#slice@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14848,10 +14965,11 @@ global.get $std/string/str local.tee $0 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 0 - i32.const 2147483647 - call $~lib/string/String#substr + call $~lib/string/String#substr@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14875,10 +14993,11 @@ global.get $std/string/str local.tee $0 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -1 - i32.const 2147483647 - call $~lib/string/String#substr + call $~lib/string/String#substr@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -14902,10 +15021,11 @@ global.get $std/string/str local.tee $0 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -5 - i32.const 2147483647 - call $~lib/string/String#substr + call $~lib/string/String#substr@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15118,10 +15238,11 @@ global.get $std/string/str local.tee $0 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 0 - i32.const 2147483647 - call $~lib/string/String#substring + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15145,10 +15266,11 @@ global.get $std/string/str local.tee $0 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -1 - i32.const 2147483647 - call $~lib/string/String#substring + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15172,10 +15294,11 @@ global.get $std/string/str local.tee $0 i32.store $0 offset=8 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const -5 - i32.const 2147483647 - call $~lib/string/String#substring + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15388,11 +15511,12 @@ local.tee $0 i32.const 1712 i32.store $0 + i32.const 0 + global.set $~argumentsLength local.get $0 i32.const 1712 i32.const 0 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -15433,11 +15557,12 @@ local.get $0 i32.const 1712 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 1712 i32.const 1712 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -15457,11 +15582,12 @@ local.get $0 i32.const 2624 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 1712 i32.const 2624 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -15502,11 +15628,12 @@ local.get $0 i32.const 7632 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 15840 i32.const 7632 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -15547,11 +15674,12 @@ local.get $0 i32.const 2624 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 15840 i32.const 2624 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -15628,11 +15756,12 @@ local.get $0 i32.const 15920 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 15872 i32.const 15920 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -15709,11 +15838,12 @@ local.get $0 i32.const 2624 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 15952 i32.const 2624 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -15808,11 +15938,12 @@ local.get $0 i32.const 2624 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 15984 i32.const 2624 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -15907,11 +16038,12 @@ local.get $0 i32.const 2624 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 16016 i32.const 2624 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -16006,11 +16138,12 @@ local.get $0 i32.const 1712 i32.store $0 offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 i32.const 2336 i32.const 1712 - i32.const 2147483647 - call $~lib/string/String#split + call $~lib/string/String#split@varargs local.tee $0 i32.store $0 offset=92 local.get $0 @@ -23241,13 +23374,12 @@ local.get $0 ) (func $~lib/util/number/itoa32 (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) - (local $4 i64) + (local $2 i32) + (local $3 i64) + (local $4 i32) (local $5 i64) (local $6 i64) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23300,55 +23432,55 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 + local.tee $4 select - local.set $8 + local.set $2 local.get $1 i32.const 10 i32.eq if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $8 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $8 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $8 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $8 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $8 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $8 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $8 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $8 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -23357,16 +23489,16 @@ local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.const 2 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $8 + local.get $2 local.get $1 call $~lib/util/number/utoa32_dec_lut else @@ -23376,7 +23508,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 31 - local.get $8 + local.get $2 i32.clz i32.sub i32.const 2 @@ -23386,19 +23518,19 @@ local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.const 2 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 local.get $0 - local.get $3 + local.get $4 i32.add local.set $7 - local.get $8 + local.get $2 i64.extend_i32_u - local.set $2 + local.set $3 loop $while-continue|0 local.get $1 i32.const 2 @@ -23412,7 +23544,7 @@ i32.const 1 i32.shl i32.add - local.get $2 + local.get $3 i32.wrap_i64 i32.const 255 i32.and @@ -23422,10 +23554,10 @@ i32.add i32.load $0 i32.store $0 - local.get $2 + local.get $3 i64.const 8 i64.shr_u - local.set $2 + local.set $3 br $while-continue|0 end end @@ -23434,7 +23566,7 @@ i32.and if local.get $7 - local.get $2 + local.get $3 i32.wrap_i64 i32.const 6 i32.shl @@ -23446,17 +23578,16 @@ else global.get $~lib/memory/__stack_pointer block $__inlined_func$~lib/util/number/ulog_base (result i32) - local.get $8 + local.get $2 i64.extend_i32_u - local.tee $5 - local.set $2 + local.set $5 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $2 + local.get $5 i64.clz i32.wrap_i64 i32.sub @@ -23472,38 +23603,38 @@ local.get $1 i64.extend_i32_s local.tee $6 - local.set $4 + local.set $3 i32.const 1 local.set $0 - loop $while-continue|00 - local.get $2 - local.get $4 - i64.ge_u + loop $while-continue|01 + local.get $3 + local.get $5 + i64.le_u if - local.get $2 - local.get $4 + local.get $5 + local.get $3 i64.div_u - local.set $2 - local.get $4 - local.get $4 + local.set $5 + local.get $3 + local.get $3 i64.mul - local.set $4 + local.set $3 local.get $0 i32.const 1 i32.shl local.set $0 - br $while-continue|00 + br $while-continue|01 end end loop $while-continue|1 - local.get $2 + local.get $5 i64.const 0 i64.ne if - local.get $2 + local.get $5 local.get $6 i64.div_u - local.set $2 + local.set $5 local.get $0 i32.const 1 i32.add @@ -23518,22 +23649,23 @@ local.tee $7 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.const 2 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $5 + local.get $2 + i64.extend_i32_u local.get $7 local.get $1 call $~lib/util/number/utoa64_any_core end end - local.get $3 + local.get $4 if local.get $0 i32.const 45 @@ -23546,11 +23678,11 @@ local.get $0 ) (func $~lib/util/number/utoa32 (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) (local $4 i64) (local $5 i64) - (local $6 i64) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23650,9 +23782,9 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 local.get $0 local.get $1 call $~lib/util/number/utoa32_dec_lut @@ -23675,17 +23807,17 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 local.get $0 i64.extend_i32_u - local.set $2 + local.set $3 loop $while-continue|0 local.get $1 i32.const 2 i32.ge_u if - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.sub @@ -23693,7 +23825,7 @@ i32.const 1 i32.shl i32.add - local.get $2 + local.get $3 i32.wrap_i64 i32.const 255 i32.and @@ -23703,10 +23835,10 @@ i32.add i32.load $0 i32.store $0 - local.get $2 + local.get $3 i64.const 8 i64.shr_u - local.set $2 + local.set $3 br $while-continue|0 end end @@ -23714,8 +23846,8 @@ i32.const 1 i32.and if - local.get $3 local.get $2 + local.get $3 i32.wrap_i64 i32.const 6 i32.shl @@ -23729,15 +23861,14 @@ block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $0 i64.extend_i32_u - local.tee $5 - local.set $2 + local.set $4 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $2 + local.get $4 i64.clz i32.wrap_i64 i32.sub @@ -23752,60 +23883,61 @@ end local.get $1 i64.extend_i32_s - local.tee $6 - local.set $4 + local.tee $5 + local.set $3 i32.const 1 - local.set $0 - loop $while-continue|00 - local.get $2 + local.set $2 + loop $while-continue|01 + local.get $3 local.get $4 - i64.ge_u + i64.le_u if - local.get $2 local.get $4 + local.get $3 i64.div_u - local.set $2 - local.get $4 - local.get $4 - i64.mul local.set $4 - local.get $0 + local.get $3 + local.get $3 + i64.mul + local.set $3 + local.get $2 i32.const 1 i32.shl - local.set $0 - br $while-continue|00 + local.set $2 + br $while-continue|01 end end loop $while-continue|1 - local.get $2 + local.get $4 i64.const 0 i64.ne if - local.get $2 - local.get $6 + local.get $4 + local.get $5 i64.div_u - local.set $2 - local.get $0 + local.set $4 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $while-continue|1 end end - local.get $0 + local.get $2 i32.const 1 i32.sub end - local.tee $0 + local.tee $6 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 - local.get $5 + local.get $2 local.get $0 + i64.extend_i32_u + local.get $6 local.get $1 call $~lib/util/number/utoa64_any_core end @@ -23814,7 +23946,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/util/number/utoa64 (type $i64_i32_=>_i32) (param $0 i64) (param $1 i32) (result i32) (local $2 i64) @@ -24093,7 +24225,7 @@ local.set $4 i32.const 1 local.set $3 - loop $while-continue|00 + loop $while-continue|01 local.get $2 local.get $4 i64.ge_u @@ -24110,7 +24242,7 @@ i32.const 1 i32.shl local.set $3 - br $while-continue|00 + br $while-continue|01 end end loop $while-continue|1 @@ -24458,7 +24590,7 @@ local.set $5 i32.const 1 local.set $3 - loop $while-continue|00 + loop $while-continue|01 local.get $2 local.get $5 i64.ge_u @@ -24475,7 +24607,7 @@ i32.const 1 i32.shl local.set $3 - br $while-continue|00 + br $while-continue|01 end end loop $while-continue|1 diff --git a/tests/compiler/std/string.ts b/tests/compiler/std/string.ts index db3f50e3a7..3f3e281a4d 100644 --- a/tests/compiler/std/string.ts +++ b/tests/compiler/std/string.ts @@ -2,7 +2,7 @@ import { utoa32, itoa32, utoa64, itoa64, dtoa } from "util/number"; // preliminary var str: string = "hi, I'm a string"; -var nullStr: string; +var nullStr: string | null = null; // exactly once in static memory assert(changetype(str) == changetype("hi, I'm a string")); diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index fdc5b59397..2738e5f8b1 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -13,7 +13,6 @@ (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) (global $std/symbol/sym2 (mut i32) (i32.const 0)) - (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -29,8 +28,9 @@ (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/symbol/idToString (mut i32) (i32.const 0)) + (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/symbol/idToString (mut i32) (i32.const 0)) (global $std/symbol/sym3 (mut i32) (i32.const 0)) (global $std/symbol/sym4 (mut i32) (i32.const 0)) (global $std/symbol/key1 (mut i32) (i32.const 0)) @@ -41,10 +41,10 @@ (global $std/symbol/hasInstance (mut i32) (i32.const 0)) (global $~lib/symbol/_Symbol.isConcatSpreadable i32 (i32.const 2)) (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 1632)) - (global $~lib/memory/__data_end i32 (i32.const 1660)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34428)) - (global $~lib/memory/__heap_base i32 (i32.const 34428)) + (global $~lib/rt/__rtti_base i32 (i32.const 1696)) + (global $~lib/memory/__data_end i32 (i32.const 1724)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34492)) + (global $~lib/memory/__heap_base i32 (i32.const 34492)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") @@ -61,26 +61,26 @@ (data (i32.const 540) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") (data (i32.const 604) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") (data (i32.const 668) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 716) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") - (data (i32.const 860) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 924) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") - (data (i32.const 1004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") - (data (i32.const 1084) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1132) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") - (data (i32.const 1164) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") - (data (i32.const 1212) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") - (data (i32.const 1260) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") - (data (i32.const 1308) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1388) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1436) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") - (data (i32.const 1484) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") - (data (i32.const 1548) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") - (data (i32.const 1632) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02\00") + (data (i32.const 716) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 876) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00\00\00\00\00\00\00") + (data (i32.const 924) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 988) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00m\00a\00t\00c\00h\00\00\00") + (data (i32.const 1068) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00") + (data (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00s\00p\00l\00i\00t\00\00\00") + (data (i32.const 1228) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00\00\00\00\00\00\00") + (data (i32.const 1276) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00\00\00\00\00\00\00") + (data (i32.const 1324) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00\00\00\00\00\00\00") + (data (i32.const 1372) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1420) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1452) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1500) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00\00\00\00\00\00\00") + (data (i32.const 1548) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00\00\00\00\00\00\00") + (data (i32.const 1612) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00\00\00\00\00\00\00\00\00") + (data (i32.const 1696) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -101,6 +101,7 @@ unreachable end local.get $id + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -120,6 +121,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -132,17 +134,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -154,8 +157,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -298,6 +299,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -317,6 +319,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -402,15 +405,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -437,6 +437,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -612,22 +613,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -652,16 +656,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -757,18 +764,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -792,18 +802,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -813,12 +826,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -966,22 +982,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1026,16 +1045,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1090,10 +1112,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1209,6 +1234,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1218,15 +1244,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1287,17 +1311,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1309,22 +1331,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1397,6 +1417,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1457,8 +1478,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1503,8 +1522,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1554,8 +1571,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1637,6 +1652,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1715,6 +1731,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1730,6 +1747,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1820,16 +1838,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1862,16 +1883,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1885,46 +1909,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1961,10 +1992,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2084,30 +2118,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2178,6 +2218,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2190,6 +2231,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2252,6 +2294,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2359,55 +2402,18 @@ local.get $entriesCount i32.store $0 offset=20 ) - (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) - local.get $this - local.get $buckets - i32.store $0 - local.get $this - local.get $buckets - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) + (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - local.get $bucketsMask - i32.store $0 offset=4 + i32.load $0 offset=16 ) - (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) - local.get $this - local.get $entries - i32.store $0 offset=8 + (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this - local.get $entries - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) - local.get $this - local.get $entriesCapacity - i32.store $0 offset=12 - ) - (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) - local.get $this - local.get $entriesOffset - i32.store $0 offset=16 - ) - (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) - local.get $this - local.get $entriesCount - i32.store $0 offset=20 - ) - (func $~lib/rt/common/OBJECT#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.load $0 offset=16 - ) - (func $~lib/string/String#get:length (type $i32_=>_i32) (param $this i32) (result i32) - local.get $this - i32.const 20 - i32.sub - call $~lib/rt/common/OBJECT#get:rtSize - i32.const 1 - i32.shr_u + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return ) (func $~lib/util/hash/HASH<~lib/string/String> (type $i32_=>_i32) (param $key i32) (result i32) (local $key|1 i32) @@ -2419,18 +2425,15 @@ (local $s3 i32) (local $s4 i32) (local $end i32) - (local $10 i32) - (local $h|11 i32) - (local $key|12 i32) - (local $h|13 i32) - (local $key|14 i32) - (local $h|15 i32) - (local $key|16 i32) - (local $h|17 i32) - (local $key|18 i32) - (local $end|19 i32) - (local $20 i32) - (local $21 i32) + (local $h|10 i32) + (local $key|11 i32) + (local $h|12 i32) + (local $key|13 i32) + (local $h|14 i32) + (local $key|15 i32) + (local $h|16 i32) + (local $key|17 i32) + (local $end|18 i32) i32.const 1 drop block $~lib/util/hash/hashStr|inlined.0 (result i32) @@ -2482,68 +2485,78 @@ local.get $pos local.get $end i32.le_u - local.set $10 - local.get $10 if - local.get $s1 - local.set $h|11 - local.get $pos - i32.load $0 - local.set $key|12 - local.get $h|11 - local.get $key|12 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.0 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load $0 + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.0 + end local.set $s1 - local.get $s2 - local.set $h|13 - local.get $pos - i32.load $0 offset=4 - local.set $key|14 - local.get $h|13 - local.get $key|14 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.1 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load $0 offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.1 + end local.set $s2 - local.get $s3 - local.set $h|15 - local.get $pos - i32.load $0 offset=8 - local.set $key|16 - local.get $h|15 - local.get $key|16 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.2 (result i32) + local.get $s3 + local.set $h|14 + local.get $pos + i32.load $0 offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.2 + end local.set $s3 - local.get $s4 - local.set $h|17 - local.get $pos - i32.load $0 offset=12 - local.set $key|18 - local.get $h|17 - local.get $key|18 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul + block $~lib/util/hash/mix|inlined.3 (result i32) + local.get $s4 + local.set $h|16 + local.get $pos + i32.load $0 offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.3 + end local.set $s4 local.get $pos i32.const 16 @@ -2583,13 +2596,11 @@ i32.add i32.const 4 i32.sub - local.set $end|19 + local.set $end|18 loop $while-continue|1 local.get $pos - local.get $end|19 + local.get $end|18 i32.le_u - local.set $20 - local.get $20 if local.get $h local.get $pos @@ -2614,13 +2625,11 @@ local.get $key|1 local.get $len i32.add - local.set $end|19 + local.set $end|18 loop $while-continue|2 local.get $pos - local.get $end|19 + local.get $end|18 i32.lt_u - local.set $21 - local.get $21 if local.get $h local.get $pos @@ -2669,6 +2678,7 @@ i32.xor local.set $h local.get $h + br $~lib/util/hash/hashStr|inlined.0 end return ) @@ -2692,7 +2702,6 @@ (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2763,8 +2772,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2793,6 +2800,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2835,6 +2843,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/map/Map<~lib/string/String,usize>#has (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) local.get $this @@ -2844,6 +2853,7 @@ call $~lib/map/Map<~lib/string/String,usize>#find i32.const 0 i32.ne + return ) (func $~lib/map/MapEntry<~lib/string/String,usize>#get:value (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2869,6 +2879,7 @@ end local.get $entry call $~lib/map/MapEntry<~lib/string/String,usize>#get:value + return ) (func $~lib/map/MapEntry<~lib/string/String,usize>#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -2909,7 +2920,6 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) @@ -2947,7 +2957,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -2958,7 +2971,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -2968,8 +2984,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -3012,12 +3026,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -3044,6 +3064,44 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/map/Map#set:buckets (type $i32_i32_=>_none) (param $this i32) (param $buckets i32) + local.get $this + local.get $buckets + i32.store $0 + local.get $this + local.get $buckets + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:bucketsMask (type $i32_i32_=>_none) (param $this i32) (param $bucketsMask i32) + local.get $this + local.get $bucketsMask + i32.store $0 offset=4 + ) + (func $~lib/map/Map#set:entries (type $i32_i32_=>_none) (param $this i32) (param $entries i32) + local.get $this + local.get $entries + i32.store $0 offset=8 + local.get $this + local.get $entries + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/map/Map#set:entriesCapacity (type $i32_i32_=>_none) (param $this i32) (param $entriesCapacity i32) + local.get $this + local.get $entriesCapacity + i32.store $0 offset=12 + ) + (func $~lib/map/Map#set:entriesOffset (type $i32_i32_=>_none) (param $this i32) (param $entriesOffset i32) + local.get $this + local.get $entriesOffset + i32.store $0 offset=16 + ) + (func $~lib/map/Map#set:entriesCount (type $i32_i32_=>_none) (param $this i32) (param $entriesCount i32) + local.get $this + local.get $entriesCount + i32.store $0 offset=20 + ) (func $~lib/util/hash/HASH (type $i32_=>_i32) (param $key i32) (result i32) (local $key|1 i32) (local $len i32) @@ -3058,55 +3116,58 @@ i32.const 4 i32.le_u drop - local.get $key - local.set $key|1 - i32.const 4 - local.set $len - i32.const 0 - i32.const 374761393 - i32.add - local.get $len - i32.add - local.set $h - local.get $h - local.get $key|1 - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 15 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -2048144777 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 13 - i32.shr_u - i32.xor - local.set $h - local.get $h - i32.const -1028477379 - i32.mul - local.set $h - local.get $h - local.get $h - i32.const 16 - i32.shr_u - i32.xor - local.set $h - local.get $h + block $~lib/util/hash/hash32|inlined.0 (result i32) + local.get $key + local.set $key|1 + i32.const 4 + local.set $len + i32.const 0 + i32.const 374761393 + i32.add + local.get $len + i32.add + local.set $h + local.get $h + local.get $key|1 + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 15 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -2048144777 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 13 + i32.shr_u + i32.xor + local.set $h + local.get $h + i32.const -1028477379 + i32.mul + local.set $h + local.get $h + local.get $h + i32.const 16 + i32.shr_u + i32.xor + local.set $h + local.get $h + br $~lib/util/hash/hash32|inlined.0 + end return ) (func $~lib/map/Map#get:buckets (type $i32_=>_i32) (param $this i32) (result i32) @@ -3127,7 +3188,6 @@ ) (func $~lib/map/Map#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) local.get $this call $~lib/map/Map#get:buckets @@ -3142,8 +3202,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry#get:taggedNext @@ -3174,6 +3232,7 @@ end end i32.const 0 + return ) (func $~lib/map/MapEntry#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -3218,6 +3277,7 @@ call $~lib/map/Map#find i32.const 0 i32.ne + return ) (func $~lib/map/Map#get (type $i32_i32_=>_i32) (param $this i32) (param $key i32) (result i32) (local $entry i32) @@ -3239,11 +3299,13 @@ end local.get $entry call $~lib/map/MapEntry#get:value + return ) (func $~lib/string/String.__concat (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) local.get $left local.get $right call $~lib/string/String#concat + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) @@ -3323,7 +3385,6 @@ (local $entries i32) (local $cur i32) (local $end i32) - (local $5 i32) (local $entry i32) (local $val i32) local.get $this @@ -3340,7 +3401,10 @@ local.get $cur local.get $this call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6 + end i32.mul i32.add local.set $end @@ -3348,8 +3412,6 @@ local.get $cur local.get $end i32.lt_u - local.set $5 - local.get $5 if local.get $cur local.set $entry @@ -3373,7 +3435,10 @@ drop end local.get $cur - i32.const 12 + block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7 + end i32.add local.set $cur br $while-continue|0 @@ -3395,7 +3460,6 @@ (local $entries i32) (local $cur i32) (local $end i32) - (local $5 i32) (local $entry i32) (local $val i32) local.get $this @@ -3412,7 +3476,10 @@ local.get $cur local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.6 + end i32.mul i32.add local.set $end @@ -3420,8 +3487,6 @@ local.get $cur local.get $end i32.lt_u - local.set $5 - local.get $5 if local.get $cur local.set $entry @@ -3445,7 +3510,10 @@ call $~lib/rt/itcms/__visit end local.get $cur - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.7 + end i32.add local.set $cur br $while-continue|0 @@ -3514,8 +3582,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 34448 - i32.const 34496 + i32.const 34512 + i32.const 34560 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3562,7 +3630,10 @@ local.get $this i32.const 0 i32.const 4 - i32.const 12 + block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $1 @@ -3588,77 +3659,10 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store $0 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store $0 - end - local.get $this - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=4 - local.get $1 - call $~lib/map/Map#set:buckets - local.get $this - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map#set:bucketsMask - local.get $this - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=4 - local.get $1 - call $~lib/map/Map#set:entries - local.get $this - i32.const 4 - call $~lib/map/Map#set:entriesCapacity - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesOffset - local.get $this - i32.const 0 - call $~lib/map/Map#set:entriesCount - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) (func $~lib/map/Map<~lib/string/String,usize>#find (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) - (local $4 i32) (local $taggedNext i32) - (local $6 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3680,8 +3684,6 @@ local.set $entry loop $while-continue|0 local.get $entry - local.set $4 - local.get $4 if local.get $entry call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext @@ -3693,11 +3695,11 @@ if (result i32) local.get $entry call $~lib/map/MapEntry<~lib/string/String,usize>#get:key - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store $0 - local.get $6 + local.get $5 local.get $key call $~lib/string/String.__eq else @@ -3705,12 +3707,12 @@ end if local.get $entry - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 return end local.get $taggedNext @@ -3723,12 +3725,82 @@ end end i32.const 0 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 + return + ) + (func $~lib/map/Map#constructor (type $i32_=>_i32) (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store $0 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store $0 + end + local.get $this + i32.const 0 + i32.const 4 + i32.const 4 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:buckets + local.get $this + i32.const 4 + i32.const 1 + i32.sub + call $~lib/map/Map#set:bucketsMask + local.get $this + i32.const 0 + i32.const 4 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.0 + end + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $1 + call $~lib/map/Map#set:entries + local.get $this + i32.const 4 + call $~lib/map/Map#set:entriesCapacity + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesOffset + local.get $this + i32.const 0 + call $~lib/map/Map#set:entriesCount + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) (func $~lib/map/Map#rehash (type $i32_i32_=>_none) (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) @@ -3738,13 +3810,12 @@ (local $oldPtr i32) (local $oldEnd i32) (local $newPtr i32) - (local $9 i32) (local $oldEntry i32) (local $newEntry i32) (local $oldEntryKey i32) (local $newBucketIndex i32) (local $newBucketPtrBase i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3777,7 +3848,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.1 + end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $newEntries @@ -3788,7 +3862,10 @@ local.get $oldPtr local.get $this call $~lib/map/Map#get:entriesOffset - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.2 + end i32.mul i32.add local.set $oldEnd @@ -3798,8 +3875,6 @@ local.get $oldPtr local.get $oldEnd i32.ne - local.set $9 - local.get $9 if local.get $oldPtr local.set $oldEntry @@ -3820,11 +3895,11 @@ local.get $newEntry local.get $oldEntry call $~lib/map/MapEntry#get:value - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $14 i32.store $0 offset=8 - local.get $15 + local.get $14 call $~lib/map/MapEntry#set:value local.get $oldEntryKey call $~lib/util/hash/HASH @@ -3845,12 +3920,18 @@ local.get $newPtr i32.store $0 local.get $newPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.3 + end i32.add local.set $newPtr end local.get $oldPtr - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.4 + end i32.add local.set $oldPtr br $while-continue|0 @@ -3890,15 +3971,14 @@ i32.const 0 i32.store $0 global.get $~lib/symbol/stringToId - i32.eqz + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 + local.get $3 + local.get $key + call $~lib/map/Map<~lib/string/String,usize>#has if - i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#constructor - global.set $~lib/symbol/stringToId - i32.const 0 - call $~lib/map/Map#constructor - global.set $~lib/symbol/idToString - else global.get $~lib/symbol/stringToId local.set $3 global.get $~lib/memory/__stack_pointer @@ -3906,24 +3986,14 @@ i32.store $0 local.get $3 local.get $key - call $~lib/map/Map<~lib/string/String,usize>#has - if - global.get $~lib/symbol/stringToId - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 - local.get $key - call $~lib/map/Map<~lib/string/String,usize>#get - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end + call $~lib/map/Map<~lib/string/String,usize>#get + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return end global.get $~lib/symbol/nextId local.tee $1 @@ -3964,6 +4034,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/symbol/_Symbol.keyFor (type $i32_=>_i32) (param $sym i32) (result i32) (local $1 i32) @@ -3976,20 +4047,13 @@ i32.const 0 i32.store $0 global.get $~lib/symbol/idToString - i32.const 0 - i32.ne - if (result i32) - global.get $~lib/symbol/idToString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 - local.get $1 - local.get $sym - call $~lib/map/Map#has - else - i32.const 0 - end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 + local.get $1 + local.get $sym + call $~lib/map/Map#has if (result i32) global.get $~lib/symbol/idToString local.set $1 @@ -4008,6 +4072,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $~lib/symbol/_Symbol#toString (type $i32_=>_i32) (param $this i32) (result i32) (local $id i32) @@ -4028,7 +4093,7 @@ local.get $this local.set $id global.get $~lib/memory/__stack_pointer - i32.const 800 + i32.const 864 local.tee $str i32.store $0 block $break|0 @@ -4093,67 +4158,67 @@ br $case11|0 end global.get $~lib/memory/__stack_pointer - i32.const 832 + i32.const 896 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 880 + i32.const 944 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 944 + i32.const 1008 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 992 + i32.const 1056 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1024 + i32.const 1088 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1072 + i32.const 1136 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1104 + i32.const 1168 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1152 + i32.const 1216 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1184 + i32.const 1248 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1232 + i32.const 1296 local.tee $str i32.store $0 br $break|0 end global.get $~lib/memory/__stack_pointer - i32.const 1280 + i32.const 1344 local.tee $str i32.store $0 br $break|0 @@ -4188,7 +4253,7 @@ end br $break|0 end - i32.const 1328 + i32.const 1392 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -4201,7 +4266,7 @@ local.get $4 i32.store $0 offset=4 local.get $4 - i32.const 1376 + i32.const 1440 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -4214,6 +4279,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $start:std/symbol (type $none_=>_none) (local $0 i32) @@ -4275,6 +4341,12 @@ i32.const 400 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#constructor + global.set $~lib/symbol/stringToId + i32.const 0 + call $~lib/map/Map#constructor + global.set $~lib/symbol/idToString i32.const 32 local.set $2 global.get $~lib/memory/__stack_pointer @@ -4429,7 +4501,7 @@ local.get $2 i32.store $0 local.get $2 - i32.const 1408 + i32.const 1472 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -4452,7 +4524,7 @@ local.get $2 i32.store $0 local.get $2 - i32.const 1456 + i32.const 1520 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -4479,7 +4551,7 @@ local.get $2 i32.store $0 local.get $2 - i32.const 1504 + i32.const 1568 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -4502,7 +4574,7 @@ local.get $2 i32.store $0 local.get $2 - i32.const 1568 + i32.const 1632 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -4566,6 +4638,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/map/Map<~lib/string/String,usize>#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -4641,7 +4714,10 @@ i32.add call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5 + end i32.mul i32.add local.set $entry @@ -4690,6 +4766,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/map/Map#set (type $i32_i32_i32_=>_i32) (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) @@ -4769,7 +4846,10 @@ i32.add call $~lib/map/Map#set:entriesOffset local.get $6 - i32.const 12 + block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + i32.const 12 + br $~lib/map/ENTRY_SIZE|inlined.5 + end i32.mul i32.add local.set $entry @@ -4818,6 +4898,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $8 + return ) (func $~lib/string/String#concat (type $i32_i32_=>_i32) (param $this i32) (param $other i32) (result i32) (local $thisSize i32) @@ -4851,7 +4932,7 @@ i32.const 0 i32.eq if - i32.const 800 + i32.const 864 local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4883,5 +4964,6 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 + return ) ) diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index 92be460320..acd8dbfaeb 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1,17 +1,16 @@ (module (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) + (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) (global $std/symbol/sym2 (mut i32) (i32.const 0)) - (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -22,6 +21,7 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/symbol/stringToId (mut i32) (i32.const 0)) (global $~lib/symbol/idToString (mut i32) (i32.const 0)) (global $std/symbol/sym3 (mut i32) (i32.const 0)) (global $std/symbol/sym4 (mut i32) (i32.const 0)) @@ -30,7 +30,7 @@ (global $std/symbol/key3 (mut i32) (i32.const 0)) (global $std/symbol/key4 (mut i32) (i32.const 0)) (global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35452)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35516)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 1036) "\1c") @@ -55,45 +55,45 @@ (data (i32.const 1640) "\02\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") (data (i32.const 1692) ",") (data (i32.const 1704) "\02\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data (i32.const 1740) "<") - (data (i32.const 1752) "\02\00\00\00\1e\00\00\00u\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00n\00u\00l\00l") - (data (i32.const 1804) "\1c") - (data (i32.const 1816) "\02") - (data (i32.const 1836) ",") - (data (i32.const 1848) "\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e") - (data (i32.const 1884) "<") - (data (i32.const 1896) "\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e") - (data (i32.const 1948) ",") - (data (i32.const 1960) "\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p") - (data (i32.const 1996) "\1c") - (data (i32.const 2008) "\02\00\00\00\n\00\00\00m\00a\00t\00c\00h") - (data (i32.const 2028) ",") - (data (i32.const 2040) "\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e") - (data (i32.const 2076) "\1c") - (data (i32.const 2088) "\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h") - (data (i32.const 2108) ",") - (data (i32.const 2120) "\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s") - (data (i32.const 2156) "\1c") - (data (i32.const 2168) "\02\00\00\00\n\00\00\00s\00p\00l\00i\00t") - (data (i32.const 2188) ",") - (data (i32.const 2200) "\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e") - (data (i32.const 2236) ",") - (data (i32.const 2248) "\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g") - (data (i32.const 2284) ",") - (data (i32.const 2296) "\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s") - (data (i32.const 2332) ",") - (data (i32.const 2344) "\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(") - (data (i32.const 2380) "\1c") - (data (i32.const 2392) "\02\00\00\00\02\00\00\00)") - (data (i32.const 2412) ",") - (data (i32.const 2424) "\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)") - (data (i32.const 2460) ",") - (data (i32.const 2472) "\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)") - (data (i32.const 2508) "<") - (data (i32.const 2520) "\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") - (data (i32.const 2572) "L") - (data (i32.const 2584) "\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") - (data (i32.const 2656) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02") + (data (i32.const 1740) "|") + (data (i32.const 1752) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") + (data (i32.const 1868) "\1c") + (data (i32.const 1880) "\02") + (data (i32.const 1900) ",") + (data (i32.const 1912) "\02\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e") + (data (i32.const 1948) "<") + (data (i32.const 1960) "\02\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e") + (data (i32.const 2012) ",") + (data (i32.const 2024) "\02\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p") + (data (i32.const 2060) "\1c") + (data (i32.const 2072) "\02\00\00\00\n\00\00\00m\00a\00t\00c\00h") + (data (i32.const 2092) ",") + (data (i32.const 2104) "\02\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e") + (data (i32.const 2140) "\1c") + (data (i32.const 2152) "\02\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h") + (data (i32.const 2172) ",") + (data (i32.const 2184) "\02\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s") + (data (i32.const 2220) "\1c") + (data (i32.const 2232) "\02\00\00\00\n\00\00\00s\00p\00l\00i\00t") + (data (i32.const 2252) ",") + (data (i32.const 2264) "\02\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e") + (data (i32.const 2300) ",") + (data (i32.const 2312) "\02\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g") + (data (i32.const 2348) ",") + (data (i32.const 2360) "\02\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s") + (data (i32.const 2396) ",") + (data (i32.const 2408) "\02\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(") + (data (i32.const 2444) "\1c") + (data (i32.const 2456) "\02\00\00\00\02\00\00\00)") + (data (i32.const 2476) ",") + (data (i32.const 2488) "\02\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)") + (data (i32.const 2524) ",") + (data (i32.const 2536) "\02\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)") + (data (i32.const 2572) "<") + (data (i32.const 2584) "\02\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") + (data (i32.const 2636) "L") + (data (i32.const 2648) "\02\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") + (data (i32.const 2720) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/rt/itcms/visitRoots (type $none_=>_none) @@ -216,7 +216,7 @@ i32.load $0 offset=8 i32.eqz local.get $0 - i32.const 35452 + i32.const 35516 i32.lt_u i32.and i32.eqz @@ -265,7 +265,7 @@ i32.const 1 else local.get $1 - i32.const 2656 + i32.const 2720 i32.load $0 i32.gt_u if @@ -279,7 +279,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 2660 + i32.const 2724 i32.add i32.load $0 i32.const 32 @@ -844,10 +844,10 @@ if unreachable end - i32.const 35456 + i32.const 35520 i32.const 0 i32.store $0 - i32.const 37024 + i32.const 37088 i32.const 0 i32.store $0 loop $for-loop|0 @@ -858,7 +858,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 35456 + i32.const 35520 i32.add i32.const 0 i32.store $0 offset=4 @@ -876,7 +876,7 @@ i32.add i32.const 2 i32.shl - i32.const 35456 + i32.const 35520 i32.add i32.const 0 i32.store $0 offset=96 @@ -894,13 +894,13 @@ br $for-loop|0 end end - i32.const 35456 - i32.const 37028 + i32.const 35520 + i32.const 37092 memory.size $0 i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 35456 + i32.const 35520 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (type $none_=>_i32) (result i32) @@ -985,7 +985,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 35452 + i32.const 35516 i32.lt_u if local.get $0 @@ -1085,7 +1085,7 @@ unreachable end local.get $0 - i32.const 35452 + i32.const 35516 i32.lt_u if local.get $0 @@ -1108,7 +1108,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 35452 + i32.const 35516 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -2000,11 +2000,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s if - i32.const 35472 - i32.const 35520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2036,7 +2036,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1824 + i32.const 1888 local.set $2 br $__inlined_func$~lib/string/String#concat end @@ -2162,7 +2162,7 @@ local.tee $0 i32.add local.set $2 - loop $while-continue|06 + loop $while-continue|09 local.get $0 local.get $2 i32.lt_u @@ -2185,7 +2185,7 @@ i32.const 12 i32.add local.set $0 - br $while-continue|06 + br $while-continue|09 end end local.get $1 @@ -2213,11 +2213,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s if - i32.const 35472 - i32.const 35520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2297,13 +2297,21 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 i32.store $0 + local.get $0 global.get $~lib/symbol/stringToId + local.tee $0 + i32.store $0 + local.get $0 + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,usize>#find if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId @@ -2313,172 +2321,25 @@ i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find - if - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/stringToId - local.tee $0 - i32.store $0 - local.get $0 - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $0 - i32.eqz - if - i32.const 1648 - i32.const 1712 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load $0 offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - else - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2684 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=4 - local.get $0 - local.get $1 - i32.store $0 - local.get $1 - if - local.get $0 - local.get $1 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 3 - i32.store $0 offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=4 - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $1 - if - local.get $0 - local.get $1 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 4 - i32.store $0 offset=12 - local.get $0 - i32.const 0 - i32.store $0 offset=16 - local.get $0 - i32.const 0 - i32.store $0 offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $~lib/symbol/stringToId - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2684 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i32.const 24 - i32.const 5 - call $~lib/rt/itcms/__new local.tee $0 - i32.store $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=4 - local.get $0 - local.get $1 - i32.store $0 - local.get $1 + i32.eqz if - local.get $0 - local.get $1 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link + i32.const 1648 + i32.const 1712 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 3 - i32.store $0 offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i32.load $0 offset=4 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store $0 offset=4 - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $1 - if - local.get $0 - local.get $1 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 i32.const 4 - i32.store $0 offset=12 - local.get $0 - i32.const 0 - i32.store $0 offset=16 - local.get $0 - i32.const 0 - i32.store $0 offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - global.set $~lib/symbol/idToString + return end global.get $~lib/symbol/nextId local.tee $3 @@ -2500,7 +2361,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2549,7 +2410,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2649,7 +2510,6 @@ if local.get $4 local.get $7 - i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $4 @@ -2662,7 +2522,6 @@ if local.get $4 local.get $1 - i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $4 @@ -2698,9 +2557,7 @@ i32.const 1056 i32.store $0 local.get $4 - i32.const 1056 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link + call $byn-split-outlined-A$~lib/rt/itcms/__link_0 local.get $0 local.get $3 i32.store $0 offset=4 @@ -2740,7 +2597,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2786,7 +2643,7 @@ i32.load $0 local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|06 + loop $while-continue|00 local.get $0 if local.get $0 @@ -2807,7 +2664,7 @@ i32.const -2 i32.and local.set $0 - br $while-continue|06 + br $while-continue|00 end end i32.const 0 @@ -2819,9 +2676,7 @@ i32.const 1056 i32.store $0 offset=4 local.get $5 - i32.const 1056 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link + call $byn-split-outlined-A$~lib/rt/itcms/__link_0 else local.get $5 i32.load $0 offset=16 @@ -2855,7 +2710,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -2898,7 +2753,7 @@ local.set $10 local.get $1 local.set $0 - loop $while-continue|00 + loop $while-continue|01 local.get $2 local.get $10 i32.ne @@ -2972,7 +2827,7 @@ i32.const 12 i32.add local.set $2 - br $while-continue|00 + br $while-continue|01 end end local.get $5 @@ -2982,7 +2837,6 @@ if local.get $5 local.get $8 - i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $5 @@ -2995,7 +2849,6 @@ if local.get $5 local.get $1 - i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $5 @@ -3034,9 +2887,7 @@ i32.const 1056 i32.store $0 offset=4 local.get $5 - i32.const 1056 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link + call $byn-split-outlined-A$~lib/rt/itcms/__link_0 local.get $5 local.get $5 i32.load $0 offset=20 @@ -3071,8 +2922,8 @@ local.get $3 return end - i32.const 35472 - i32.const 35520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3086,95 +2937,91 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s if - i32.const 35472 - i32.const 35520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 i32.store $0 + local.get $1 global.get $~lib/symbol/idToString - if (result i32) - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/idToString - local.tee $1 - i32.store $0 - local.get $1 - i32.load $0 - local.get $1 - i32.load $0 offset=4 - local.get $0 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $1 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $1 - if - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - i32.load $0 - local.get $0 - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find - local.get $2 - i32.const -2 - i32.and - local.set $1 - br $while-continue|0 - end - end - i32.const 0 - local.set $1 - end - local.get $1 - else - i32.const 0 - end + local.tee $1 + i32.store $0 + local.get $1 + i32.load $0 + local.get $1 + i32.load $0 offset=4 + local.get $0 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.set $1 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $1 + if + local.get $1 + i32.load $0 offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + i32.load $0 + local.get $0 + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $2 + i32.const -2 + i32.and + local.set $1 + br $while-continue|0 + end + end + i32.const 0 + local.set $1 + end + local.get $1 if (result i32) global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/idToString @@ -3202,11 +3049,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s if - i32.const 35472 - i32.const 35520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3219,10 +3066,10 @@ local.get $1 i64.const 0 i64.store $0 offset=8 - i32.const 1824 + i32.const 1888 local.set $2 local.get $1 - i32.const 1824 + i32.const 1888 i32.store $0 block $break|0 block $case11|0 @@ -3242,80 +3089,80 @@ i32.sub br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 end - i32.const 1856 + i32.const 1920 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 1856 + i32.const 1920 i32.store $0 br $break|0 end - i32.const 1904 + i32.const 1968 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 1904 + i32.const 1968 i32.store $0 br $break|0 end - i32.const 1968 + i32.const 2032 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 1968 + i32.const 2032 i32.store $0 br $break|0 end - i32.const 2016 + i32.const 2080 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 2016 + i32.const 2080 i32.store $0 br $break|0 end - i32.const 2048 + i32.const 2112 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 2048 + i32.const 2112 i32.store $0 br $break|0 end - i32.const 2096 + i32.const 2160 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 2096 + i32.const 2160 i32.store $0 br $break|0 end - i32.const 2128 + i32.const 2192 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 2128 + i32.const 2192 i32.store $0 br $break|0 end - i32.const 2176 + i32.const 2240 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 2176 + i32.const 2240 i32.store $0 br $break|0 end - i32.const 2208 + i32.const 2272 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 2208 + i32.const 2272 i32.store $0 br $break|0 end - i32.const 2256 + i32.const 2320 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 2256 + i32.const 2320 i32.store $0 br $break|0 end - i32.const 2304 + i32.const 2368 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 2304 + i32.const 2368 i32.store $0 br $break|0 end @@ -3410,9 +3257,9 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 2352 + i32.const 2416 i32.store $0 offset=12 - i32.const 2352 + i32.const 2416 local.get $2 call $~lib/string/String.__concat local.set $0 @@ -3420,10 +3267,10 @@ local.get $0 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - i32.const 2400 + i32.const 2464 i32.store $0 offset=8 local.get $0 - i32.const 2400 + i32.const 2464 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -3439,335 +3286,469 @@ i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2684 - i32.lt_s - if - i32.const 35472 - i32.const 35520 - i32.const 1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i64.const 0 + i64.store $0 offset=8 + local.get $0 + i32.const 1056 + i32.store $0 + global.get $~lib/symbol/nextId + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i64.const 0 - i64.store $0 offset=8 - local.get $0 - i32.const 1056 - i32.store $0 - global.get $~lib/symbol/nextId - local.tee $0 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $0 - i32.eqz - if - unreachable - end - local.get $0 - global.set $std/symbol/sym1 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store $0 - global.get $~lib/symbol/nextId - local.tee $0 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $0 - i32.eqz - if - unreachable - end - local.get $0 - global.set $std/symbol/sym2 - global.get $std/symbol/sym1 - global.get $std/symbol/sym2 - i32.eq - if - i32.const 0 - i32.const 1088 - i32.const 4 + i32.add + global.set $~lib/symbol/nextId + local.get $0 + i32.eqz + if + unreachable + end + local.get $0 + global.set $std/symbol/sym1 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store $0 + global.get $~lib/symbol/nextId + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - memory.size $0 - i32.const 16 - i32.shl - i32.const 35452 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1252 - i32.const 1248 - i32.store $0 - i32.const 1256 - i32.const 1248 - i32.store $0 - i32.const 1248 - global.set $~lib/rt/itcms/pinSpace - i32.const 1284 - i32.const 1280 - i32.store $0 - i32.const 1288 - i32.const 1280 - i32.store $0 - i32.const 1280 - global.set $~lib/rt/itcms/toSpace - i32.const 1428 - i32.const 1424 - i32.store $0 - i32.const 1432 - i32.const 1424 - i32.store $0 - i32.const 1424 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store $0 - call $~lib/symbol/_Symbol.for - global.set $std/symbol/sym3 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store $0 - call $~lib/symbol/_Symbol.for - global.set $std/symbol/sym4 - global.get $std/symbol/sym3 - global.get $std/symbol/sym4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 9 + i32.add + global.set $~lib/symbol/nextId + local.get $0 + i32.eqz + if + unreachable + end + local.get $0 + global.set $std/symbol/sym2 + global.get $std/symbol/sym1 + global.get $std/symbol/sym2 + i32.eq + if + i32.const 0 + i32.const 1088 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size $0 + i32.const 16 + i32.shl + i32.const 35516 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $std/symbol/sym1 - call $~lib/symbol/_Symbol.keyFor - global.set $std/symbol/key1 - global.get $std/symbol/sym2 - call $~lib/symbol/_Symbol.keyFor - global.set $std/symbol/key2 - global.get $~lib/memory/__stack_pointer - global.get $std/symbol/key1 - local.tee $0 - i32.store $0 - local.get $0 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz - if + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1252 + i32.const 1248 + i32.store $0 + i32.const 1256 + i32.const 1248 + i32.store $0 + i32.const 1248 + global.set $~lib/rt/itcms/pinSpace + i32.const 1284 + i32.const 1280 + i32.store $0 + i32.const 1288 + i32.const 1280 + i32.store $0 + i32.const 1280 + global.set $~lib/rt/itcms/toSpace + i32.const 1428 + i32.const 1424 + i32.store $0 + i32.const 1432 + i32.const 1424 + i32.store $0 + i32.const 1424 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 3 + i32.store $0 offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 4 + i32.store $0 offset=12 + local.get $0 i32.const 0 - i32.const 1088 - i32.const 14 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/symbol/key2 - local.tee $0 - i32.store $0 - local.get $0 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz - if + i32.store $0 offset=16 + local.get $0 i32.const 0 - i32.const 1088 - i32.const 15 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/symbol/sym3 - call $~lib/symbol/_Symbol.keyFor - local.tee $0 - i32.store $0 offset=4 - local.get $0 - i32.eqz - if - i32.const 1760 - i32.const 1088 - i32.const 17 - i32.const 12 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $std/symbol/key3 - global.get $~lib/memory/__stack_pointer - global.get $std/symbol/sym4 - call $~lib/symbol/_Symbol.keyFor - local.tee $0 - i32.store $0 offset=8 - local.get $0 - i32.eqz - if - i32.const 1760 - i32.const 1088 - i32.const 18 - i32.const 12 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $std/symbol/key4 - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/symbol/key3 - local.tee $1 - i32.store $0 - local.get $0 - i32.const 1056 - i32.store $0 offset=12 - local.get $1 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 20 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/symbol/key3 - local.tee $1 - i32.store $0 - local.get $0 - global.get $std/symbol/key4 - local.tee $0 - i32.store $0 offset=12 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - i32.eqz - if + i32.store $0 offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $~lib/symbol/stringToId + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 24 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 3 + i32.store $0 offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + if + local.get $0 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + i32.const 4 + i32.store $0 offset=12 + local.get $0 i32.const 0 - i32.const 1088 - i32.const 21 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/symbol/nextId - local.tee $0 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $0 - i32.eqz - if - unreachable - end - local.get $0 - call $~lib/symbol/_Symbol#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 - local.get $1 - i32.const 2432 - i32.store $0 offset=12 - local.get $0 - i32.const 2432 - call $~lib/string/String.__eq - i32.eqz - if + i32.store $0 offset=16 + local.get $0 i32.const 0 - i32.const 1088 - i32.const 23 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $std/symbol/sym3 - call $~lib/symbol/_Symbol#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 - local.get $1 - i32.const 2480 - i32.store $0 offset=12 - local.get $0 - i32.const 2480 - call $~lib/string/String.__eq - i32.eqz - if + i32.store $0 offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $~lib/symbol/idToString + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store $0 + call $~lib/symbol/_Symbol.for + global.set $std/symbol/sym3 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store $0 + call $~lib/symbol/_Symbol.for + global.set $std/symbol/sym4 + global.get $std/symbol/sym3 + global.get $std/symbol/sym4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/symbol/sym1 + call $~lib/symbol/_Symbol.keyFor + global.set $std/symbol/key1 + global.get $std/symbol/sym2 + call $~lib/symbol/_Symbol.keyFor + global.set $std/symbol/key2 + global.get $~lib/memory/__stack_pointer + global.get $std/symbol/key1 + local.tee $0 + i32.store $0 + local.get $0 i32.const 0 - i32.const 1088 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - global.set $std/symbol/isConcatSpreadable - i32.const 1 - call $~lib/symbol/_Symbol#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 - local.get $1 - i32.const 2528 - i32.store $0 offset=12 - local.get $0 - i32.const 2528 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/symbol/key2 + local.tee $0 + i32.store $0 + local.get $0 i32.const 0 - i32.const 1088 - i32.const 28 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/symbol/sym3 + call $~lib/symbol/_Symbol.keyFor + local.tee $0 + i32.store $0 offset=4 + local.get $0 + i32.eqz + if + i32.const 1760 + i32.const 1088 + i32.const 17 + i32.const 12 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $std/symbol/key3 + global.get $~lib/memory/__stack_pointer + global.get $std/symbol/sym4 + call $~lib/symbol/_Symbol.keyFor + local.tee $0 + i32.store $0 offset=8 + local.get $0 + i32.eqz + if + i32.const 1760 + i32.const 1088 + i32.const 18 + i32.const 12 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $std/symbol/key4 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/symbol/key3 + local.tee $1 + i32.store $0 + local.get $0 + i32.const 1056 + i32.store $0 offset=12 + local.get $1 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/symbol/key3 + local.tee $1 + i32.store $0 + local.get $0 + global.get $std/symbol/key4 + local.tee $0 + i32.store $0 offset=12 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/symbol/nextId + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $std/symbol/isConcatSpreadable - call $~lib/symbol/_Symbol#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store $0 - local.get $1 - i32.const 2592 - i32.store $0 offset=12 - local.get $0 - i32.const 2592 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 29 + i32.add + global.set $~lib/symbol/nextId + local.get $0 + i32.eqz + if + unreachable + end + local.get $0 + call $~lib/symbol/_Symbol#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 + local.get $1 + i32.const 2496 + i32.store $0 offset=12 + local.get $0 + i32.const 2496 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/symbol/sym3 + call $~lib/symbol/_Symbol#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 + local.get $1 + i32.const 2544 + i32.store $0 offset=12 + local.get $0 + i32.const 2544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $std/symbol/isConcatSpreadable i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/symbol/_Symbol#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 + local.get $1 + i32.const 2592 + i32.store $0 offset=12 + local.get $0 + i32.const 2592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $std/symbol/isConcatSpreadable + call $~lib/symbol/_Symbol#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store $0 + local.get $1 + i32.const 2656 + i32.store $0 offset=12 + local.get $0 + i32.const 2656 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 29 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_=>_i32) (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3775,11 +3756,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 2684 + i32.const 2748 i32.lt_s if - i32.const 35472 - i32.const 35520 + i32.const 35536 + i32.const 35584 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3830,8 +3811,7 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) local.get $0 i32.eqz if @@ -3855,25 +3835,21 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and - local.tee $3 + local.tee $0 global.get $~lib/rt/itcms/white i32.eqz i32.eq if - local.get $0 local.get $1 - local.get $2 - select call $~lib/rt/itcms/Object#makeGray else global.get $~lib/rt/itcms/state i32.const 1 i32.eq - local.get $3 + local.get $0 i32.const 3 i32.eq i32.and @@ -3884,4 +3860,52 @@ end end ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link_0 (type $i32_=>_none) (param $0 i32) + (local $1 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + i32.const 1040 + i32.load $0 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load $0 offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $1 + i32.const 3 + i32.eq + i32.and + if + i32.const 1036 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) ) diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index fa60e4ad91..5aca8b1077 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -430,6 +430,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -442,17 +443,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -464,8 +466,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -608,6 +608,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -627,6 +628,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -712,15 +714,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -747,6 +746,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -922,22 +922,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -962,16 +965,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -1067,18 +1073,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1102,18 +1111,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1123,12 +1135,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1276,22 +1291,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1336,16 +1354,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1400,10 +1421,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1519,6 +1543,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1528,15 +1553,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1597,17 +1620,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1619,22 +1640,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1707,6 +1726,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1767,8 +1787,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1813,8 +1831,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1864,8 +1880,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1947,6 +1961,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -2025,6 +2040,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -2040,6 +2056,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -2130,16 +2147,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2172,16 +2192,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2195,46 +2218,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2271,10 +2301,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2394,30 +2427,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2488,6 +2527,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2500,6 +2540,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2562,6 +2603,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2664,6 +2706,7 @@ local.get $this call $~lib/arraybuffer/ArrayBufferView#get:buffer i32.sub + return ) (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2672,62 +2715,73 @@ (func $~lib/typedarray/Int8Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength + return ) (func $~lib/typedarray/Uint8Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength + return ) (func $~lib/typedarray/Uint8ClampedArray#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength + return ) (func $~lib/typedarray/Int16Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u + return ) (func $~lib/typedarray/Uint16Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u + return ) (func $~lib/typedarray/Int32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u + return ) (func $~lib/typedarray/Uint32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u + return ) (func $~lib/typedarray/Int64Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u + return ) (func $~lib/typedarray/Uint64Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u + return ) (func $~lib/typedarray/Float32Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u + return ) (func $~lib/typedarray/Float64Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u + return ) (func $std/typedarray/testInstantiate (type $i32_=>_none) (param $len i32) (local $i8a i32) @@ -3318,6 +3372,7 @@ i32.shl i32.add i32.load $0 + return ) (func $~lib/typedarray/Float64Array#__set (type $i32_i32_f64_=>_none) (param $this i32) (param $index i32) (param $value f64) local.get $index @@ -3346,14 +3401,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a f64) (local $b f64) (local $min f64) (local $max f64) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -3385,8 +3437,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -3430,8 +3480,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -3480,8 +3528,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -3535,11 +3581,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp f64) - (local $9 i32) local.get $i local.get $right i32.eq @@ -3599,8 +3642,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -3615,8 +3656,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -3683,8 +3722,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -3695,6 +3732,7 @@ end end local.get $j + return ) (func $~lib/util/sort/nodePower (type $i32_i32_i32_i32_i32_=>_i32) (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) @@ -3745,15 +3783,13 @@ i64.xor i32.wrap_i64 i32.clz + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a f64) (local $b f64) local.get $m @@ -3772,8 +3808,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -3804,8 +3838,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -3834,8 +3866,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -3907,28 +3937,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -4051,12 +4077,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.0 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.0 + end i32.const 2 i32.add local.set $lgPlus2 @@ -4079,8 +4108,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -4120,13 +4147,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -4145,8 +4172,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -4169,15 +4194,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -4196,16 +4221,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -4218,7 +4241,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -4232,17 +4255,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -4270,29 +4293,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -4304,10 +4325,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -4324,6 +4345,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $f64_f64_=>_i32) (param $a f64) (param $b f64) (result i32) (local $ia i64) @@ -4357,6 +4379,7 @@ local.get $ib i64.lt_s i32.sub + return ) (func $~lib/typedarray/Float64Array#__get (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) local.get $index @@ -4380,6 +4403,7 @@ i32.shl i32.add f64.load $0 + return ) (func $~lib/typedarray/Uint8ClampedArray#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index @@ -4431,6 +4455,7 @@ local.get $index i32.add i32.load8_u $0 + return ) (func $~lib/typedarray/Int8Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index @@ -4539,6 +4564,7 @@ local.get $end call $~lib/util/bytes/FILL local.get $this + return ) (func $~lib/rt/__newBuffer (type $i32_i32_i32_=>_i32) (param $size i32) (param $id i32) (param $data i32) (result i32) (local $buffer i32) @@ -4554,6 +4580,7 @@ memory.copy $0 $0 end local.get $buffer + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -4562,6 +4589,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/typedarray/Int8Array#__get (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $index @@ -4581,6 +4609,7 @@ local.get $index i32.add i32.load8_s $0 + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -4611,11 +4640,11 @@ i32.const 0 drop local.get $value + return ) (func $std/typedarray/isInt8ArrayEqual (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $i i32) (local $len i32) - (local $4 i32) local.get $a call $~lib/typedarray/Int8Array#get:length local.get $b @@ -4634,8 +4663,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $a local.get $i @@ -4656,6 +4683,31 @@ end end i32.const 1 + return + ) + (func $~lib/typedarray/Int8Array#fill@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $start i32) (param $end 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 $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $value + local.get $start + local.get $end + call $~lib/typedarray/Int8Array#fill ) (func $~lib/util/bytes/FILL (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $len i32) (param $value i32) (param $start i32) (param $end i32) (local $5 i32) @@ -4666,7 +4718,6 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) local.get $start i32.const 0 i32.lt_s @@ -4758,8 +4809,6 @@ local.get $start local.get $end i32.lt_s - local.set $13 - local.get $13 if local.get $ptr local.get $start @@ -4786,6 +4835,7 @@ local.get $end call $~lib/util/bytes/FILL local.get $this + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -4794,6 +4844,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -4824,11 +4875,11 @@ i32.const 0 drop local.get $value + return ) (func $std/typedarray/isInt32ArrayEqual (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) (local $i i32) (local $len i32) - (local $4 i32) local.get $a call $~lib/typedarray/Int32Array#get:length local.get $b @@ -4847,8 +4898,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $a local.get $i @@ -4869,6 +4918,52 @@ end end i32.const 1 + return + ) + (func $~lib/typedarray/Int32Array#fill@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $value i32) (param $start i32) (param $end 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 $start + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $value + local.get $start + local.get $end + call $~lib/typedarray/Int32Array#fill + ) + (func $~lib/typedarray/Int32Array#slice@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $begin + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $begin + local.get $end + call $~lib/typedarray/Int32Array#slice ) (func $~lib/typedarray/Int32Array#copyWithin (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $target i32) (param $start i32) (param $end i32) (result i32) (local $array i32) @@ -4897,132 +4992,156 @@ (local $27 i32) (local $28 i32) (local $count i32) - local.get $this - local.set $array - local.get $target - local.set $target|5 - local.get $start - local.set $start|6 - local.get $end - local.set $end|7 - local.get $array - call $~lib/typedarray/Int32Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $end|7 - local.tee $10 - local.get $len - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - local.set $end|7 - local.get $target|5 - i32.const 0 - i32.lt_s - if (result i32) + block $~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $target + local.set $target|5 + local.get $start + local.set $start|6 + local.get $end + local.set $end|7 + local.get $array + call $~lib/typedarray/Int32Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $end|7 + local.tee $10 local.get $len - local.get $target|5 - i32.add - local.tee $12 - i32.const 0 - local.tee $13 - local.get $12 - local.get $13 - i32.gt_s + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s select - else + local.set $end|7 local.get $target|5 - local.tee $14 - local.get $len - local.tee $15 - local.get $14 - local.get $15 + i32.const 0 i32.lt_s - select - end - local.set $to - local.get $start|6 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $target|5 + i32.add + local.tee $12 + i32.const 0 + local.tee $13 + local.get $12 + local.get $13 + i32.gt_s + select + else + local.get $target|5 + local.tee $14 + local.get $len + local.tee $15 + local.get $14 + local.get $15 + i32.lt_s + select + end + local.set $to local.get $start|6 - i32.add - local.tee $17 i32.const 0 - local.tee $18 - local.get $17 - local.get $18 - i32.gt_s - select - else - local.get $start|6 - local.tee $19 - local.get $len - local.tee $20 - local.get $19 - local.get $20 i32.lt_s - select - end - local.set $from - local.get $end|7 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $start|6 + i32.add + local.tee $17 + i32.const 0 + local.tee $18 + local.get $17 + local.get $18 + i32.gt_s + select + else + local.get $start|6 + local.tee $19 + local.get $len + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + end + local.set $from local.get $end|7 - i32.add - local.tee $22 i32.const 0 - local.tee $23 - local.get $22 - local.get $23 - i32.gt_s - select - else - local.get $end|7 - local.tee $24 + i32.lt_s + if (result i32) + local.get $len + local.get $end|7 + i32.add + local.tee $22 + i32.const 0 + local.tee $23 + local.get $22 + local.get $23 + i32.gt_s + select + else + local.get $end|7 + local.tee $24 + local.get $len + local.tee $25 + local.get $24 + local.get $25 + i32.lt_s + select + end + local.set $last + local.get $last + local.get $from + i32.sub + local.tee $27 local.get $len - local.tee $25 - local.get $24 - local.get $25 + local.get $to + i32.sub + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select + local.set $count + local.get $ptr + local.get $to + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $from + i32.const 2 + i32.shl + i32.add + local.get $count + i32.const 2 + i32.shl + memory.copy $0 $0 + local.get $array + br $~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0 end - local.set $last - local.get $last - local.get $from - i32.sub - local.tee $27 - local.get $len - local.get $to - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $count - local.get $ptr - local.get $to - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $from - i32.const 2 - i32.shl - i32.add - local.get $count - i32.const 2 - i32.shl - memory.copy $0 $0 - local.get $array + return + ) + (func $~lib/typedarray/Int32Array#copyWithin@varargs (type $i32_i32_i32_i32_=>_i32) (param $this i32) (param $target i32) (param $start i32) (param $end i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $end + end + local.get $this + local.get $target + local.get $start + local.get $end + call $~lib/typedarray/Int32Array#copyWithin ) (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -5036,51 +5155,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Int8Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Int8Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0 end - local.get $initialValue|5 + return ) (func $~lib/typedarray/Uint8Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index @@ -5114,51 +5234,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Uint8Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Uint8Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -5172,51 +5293,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 end - local.get $initialValue|5 + return ) (func $~lib/typedarray/Int16Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index @@ -5254,51 +5376,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Int16Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Int16Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0 end - local.get $initialValue|5 + return ) (func $~lib/typedarray/Uint16Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index @@ -5336,51 +5459,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Uint16Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Uint16Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -5394,51 +5518,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Int32Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Int32Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0 end - local.get $initialValue|5 + return ) (func $~lib/typedarray/Uint32Array#__set (type $i32_i32_i32_=>_none) (param $this i32) (param $index i32) (param $value i32) local.get $index @@ -5476,51 +5601,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Uint32Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Uint32Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 end - local.get $initialValue|5 + return ) (func $~lib/typedarray/Int64Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index @@ -5558,51 +5684,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Int64Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0 (result i64) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Int64Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0 end - local.get $initialValue|5 + return ) (func $~lib/typedarray/Uint64Array#__set (type $i32_i32_i64_=>_none) (param $this i32) (param $index i32) (param $value i64) local.get $index @@ -5640,67 +5767,68 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Uint64Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $initialValue|5 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $initialValue|5 - ) - (func $~lib/typedarray/Float32Array#__set (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) - local.get $index - local.get $this - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 336 - i32.const 608 - i32.const 1315 - i32.const 64 - call $~lib/builtins/abort - unreachable - end + block $~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 (result i64) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Uint64Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 + end + return + ) + (func $~lib/typedarray/Float32Array#__set (type $i32_i32_f32_=>_none) (param $this i32) (param $index i32) (param $value f32) + local.get $index + local.get $this + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 336 + i32.const 608 + i32.const 1315 + i32.const 64 + call $~lib/builtins/abort + unreachable + end local.get $this call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $index @@ -5722,51 +5850,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Float32Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0 (result f32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Float32Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $f32_f32_i32_i32_=>_f32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (type $f64_f64_i32_i32_=>_f64) (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) local.get $acc @@ -5780,51 +5909,52 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $9 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - call $~lib/typedarray/Float64Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - local.set $9 - local.get $9 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0 (result f64) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + call $~lib/typedarray/Float64Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $f64_f64_i32_i32_=>_f64) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0 end - local.get $initialValue|5 + return ) (func $~lib/typedarray/Int8Array#at (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) (local $len i32) @@ -5856,6 +5986,7 @@ local.get $index i32.add i32.load8_s $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> (type $none_=>_none) (local $array i32) @@ -5962,6 +6093,7 @@ local.get $index i32.add i32.load8_u $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> (type $none_=>_none) (local $array i32) @@ -6068,6 +6200,7 @@ local.get $index i32.add i32.load8_u $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> (type $none_=>_none) (local $array i32) @@ -6178,6 +6311,7 @@ i32.shl i32.add i32.load16_s $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> (type $none_=>_none) (local $array i32) @@ -6288,6 +6422,7 @@ i32.shl i32.add i32.load16_u $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> (type $none_=>_none) (local $array i32) @@ -6398,6 +6533,7 @@ i32.shl i32.add i32.load $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> (type $none_=>_none) (local $array i32) @@ -6508,6 +6644,7 @@ i32.shl i32.add i32.load $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> (type $none_=>_none) (local $array i32) @@ -6618,6 +6755,7 @@ i32.shl i32.add i64.load $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> (type $none_=>_none) (local $array i32) @@ -6728,6 +6866,7 @@ i32.shl i32.add i64.load $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> (type $none_=>_none) (local $array i32) @@ -6838,6 +6977,7 @@ i32.shl i32.add f32.load $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> (type $none_=>_none) (local $array i32) @@ -6948,6 +7088,7 @@ i32.shl i32.add f64.load $0 + return ) (func $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> (type $none_=>_none) (local $array i32) @@ -7035,51 +7176,52 @@ (local $initialValue|5 i32) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i i32.const 0 - i32.shl - i32.add - i32.load8_s $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 - local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -7092,51 +7234,52 @@ (local $initialValue|5 i32) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Uint8Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Uint8Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i i32.const 0 - i32.shl - i32.add - i32.load8_u $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 - local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -7149,51 +7292,52 @@ (local $initialValue|5 i32) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i i32.const 0 - i32.shl - i32.add - i32.load8_u $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 - local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -7206,51 +7350,52 @@ (local $initialValue|5 i32) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -7263,51 +7408,52 @@ (local $initialValue|5 i32) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Uint16Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Uint16Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -7320,51 +7466,52 @@ (local $initialValue|5 i32) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc @@ -7377,51 +7524,52 @@ (local $initialValue|5 i32) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Uint32Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Uint32Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (type $i64_i64_i32_i32_=>_i64) (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc @@ -7434,51 +7582,52 @@ (local $initialValue|5 i64) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0 (result i64) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (type $i64_i64_i32_i32_=>_i64) (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc @@ -7491,51 +7640,52 @@ (local $initialValue|5 i64) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Uint64Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 (result i64) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Uint64Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (type $f32_f32_i32_i32_=>_f32) (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) local.get $acc @@ -7548,51 +7698,52 @@ (local $initialValue|5 f32) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Float32Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0 (result f32) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Float32Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $f32_f32_i32_i32_=>_f32) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (type $f64_f64_i32_i32_=>_f64) (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) local.get $acc @@ -7605,51 +7756,52 @@ (local $initialValue|5 f64) (local $ptr i32) (local $i i32) - (local $8 i32) - local.get $this - local.set $array - local.get $fn - local.set $fn|4 - local.get $initialValue - local.set $initialValue|5 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $array - call $~lib/typedarray/Float64Array#get:length - i32.const 1 - i32.sub - local.set $i - loop $for-loop|0 - local.get $i - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - local.get $initialValue|5 - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load $0 - local.get $i - local.get $array - i32.const 4 - global.set $~argumentsLength - local.get $fn|4 - i32.load $0 - call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $initialValue|5 + block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0 (result f64) + local.get $this + local.set $array + local.get $fn + local.set $fn|4 + local.get $initialValue + local.set $initialValue|5 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + local.get $array + call $~lib/typedarray/Float64Array#get:length + i32.const 1 + i32.sub + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $initialValue|5 + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.get $i + local.get $array + i32.const 4 + global.set $~argumentsLength + local.get $fn|4 + i32.load $0 + call_indirect $0 (type $f64_f64_i32_i32_=>_f64) + local.set $initialValue|5 + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end end + local.get $initialValue|5 + br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0 end - local.get $initialValue|5 + return ) (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -7679,6 +7831,7 @@ local.get $index i32.add i32.load8_u $0 + return ) (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -7712,6 +7865,7 @@ i32.shl i32.add i32.load16_s $0 + return ) (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -7740,6 +7894,7 @@ i32.shl i32.add i32.load16_u $0 + return ) (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -7773,6 +7928,7 @@ i32.shl i32.add i32.load $0 + return ) (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (type $i64_i32_i32_=>_i64) (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) local.get $value @@ -7801,6 +7957,7 @@ i32.shl i32.add i64.load $0 + return ) (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (type $i64_i32_i32_=>_i64) (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) local.get $value @@ -7829,6 +7986,7 @@ i32.shl i32.add i64.load $0 + return ) (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (type $f32_i32_i32_=>_f32) (param $value f32) (param $$1 i32) (param $$2 i32) (result f32) local.get $value @@ -7857,6 +8015,7 @@ i32.shl i32.add f32.load $0 + return ) (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (type $f64_i32_i32_=>_f64) (param $value f64) (param $$1 i32) (param $$2 i32) (result f64) local.get $value @@ -7917,6 +8076,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -7987,7 +8147,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $this local.set $array @@ -8005,8 +8164,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8033,7 +8190,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8054,7 +8213,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -8072,8 +8230,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8100,7 +8256,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8122,7 +8280,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -8140,8 +8297,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8168,7 +8323,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8189,7 +8346,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $this local.set $array @@ -8207,8 +8363,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8235,7 +8389,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8256,7 +8412,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $this local.set $array @@ -8274,8 +8429,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8302,7 +8455,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8322,7 +8477,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $this local.set $array @@ -8340,8 +8494,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8368,7 +8520,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8386,7 +8540,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $this local.set $array @@ -8404,8 +8557,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8432,7 +8583,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8450,7 +8603,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $this local.set $array @@ -8468,8 +8620,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8496,7 +8646,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (type $i64_i32_i32_=>_i32) (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8514,7 +8666,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $this local.set $array @@ -8532,8 +8683,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8560,7 +8709,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (type $i64_i32_i32_=>_i32) (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8578,7 +8729,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $this local.set $array @@ -8596,8 +8746,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8624,7 +8772,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (type $f32_i32_i32_=>_i32) (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8642,7 +8792,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $this local.set $array @@ -8660,8 +8809,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8688,7 +8835,9 @@ end end i32.const 0 + br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 end + return ) (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (type $f64_i32_i32_=>_i32) (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8707,7 +8856,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $this local.set $array @@ -8725,8 +8873,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8753,7 +8899,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8774,7 +8922,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -8792,8 +8939,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8820,7 +8965,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8842,7 +8989,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -8860,8 +9006,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8888,7 +9032,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8909,7 +9055,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $this local.set $array @@ -8927,8 +9072,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -8955,7 +9098,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -8976,7 +9121,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $this local.set $array @@ -8994,8 +9138,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9022,7 +9164,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9042,7 +9186,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $this local.set $array @@ -9060,8 +9203,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9088,7 +9229,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9106,7 +9249,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $this local.set $array @@ -9124,8 +9266,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9152,7 +9292,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9170,7 +9312,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $this local.set $array @@ -9188,8 +9329,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9216,7 +9355,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (type $i64_i32_i32_=>_i32) (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9234,7 +9375,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $this local.set $array @@ -9252,8 +9392,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9280,7 +9418,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (type $i64_i32_i32_=>_i32) (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9298,7 +9438,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $this local.set $array @@ -9316,8 +9455,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9344,7 +9481,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (type $f32_i32_i32_=>_i32) (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9362,7 +9501,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $this local.set $array @@ -9380,8 +9518,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -9408,7 +9544,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 end + return ) (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (type $f64_i32_i32_=>_i32) (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9426,7 +9564,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $this local.set $array @@ -9444,8 +9581,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9472,7 +9607,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9492,7 +9629,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -9510,8 +9646,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9538,7 +9672,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9559,7 +9695,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -9577,8 +9712,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9605,7 +9738,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9625,7 +9760,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $this local.set $array @@ -9643,8 +9777,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9671,7 +9803,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9691,7 +9825,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $this local.set $array @@ -9709,8 +9842,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9737,7 +9868,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9756,7 +9889,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $this local.set $array @@ -9774,8 +9906,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9802,7 +9932,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9819,7 +9951,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $this local.set $array @@ -9837,8 +9968,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9865,7 +9994,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9882,7 +10013,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $this local.set $array @@ -9900,8 +10030,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9928,7 +10056,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (type $i64_i32_i32_=>_i32) (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -9945,7 +10075,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $this local.set $array @@ -9963,8 +10092,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -9991,7 +10118,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (type $i64_i32_i32_=>_i32) (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10008,7 +10137,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $this local.set $array @@ -10026,8 +10154,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -10054,7 +10180,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (type $f32_i32_i32_=>_i32) (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10071,7 +10199,6 @@ (local $fn|3 i32) (local $ptr i32) (local $i i32) - (local $6 i32) block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $this local.set $array @@ -10089,8 +10216,6 @@ local.get $i i32.const 0 i32.ge_s - local.set $6 - local.get $6 if local.get $ptr local.get $i @@ -10117,7 +10242,9 @@ end end i32.const -1 + br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 end + return ) (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (type $f64_i32_i32_=>_i32) (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10138,7 +10265,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $this local.set $array @@ -10156,8 +10282,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10187,7 +10311,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10210,7 +10336,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -10228,8 +10353,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10259,7 +10382,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10283,7 +10408,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -10301,8 +10425,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10332,7 +10454,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10355,7 +10479,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $this local.set $array @@ -10373,8 +10496,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10404,7 +10525,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10427,7 +10550,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $this local.set $array @@ -10445,8 +10567,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10476,7 +10596,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10498,7 +10620,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $this local.set $array @@ -10516,8 +10637,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10547,7 +10666,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10567,7 +10688,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $this local.set $array @@ -10585,8 +10705,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10616,7 +10734,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (type $i32_i32_i32_=>_i32) (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10636,7 +10756,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $this local.set $array @@ -10654,8 +10773,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10685,7 +10802,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (type $i64_i32_i32_=>_i32) (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10705,7 +10824,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $this local.set $array @@ -10723,8 +10841,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -10754,7 +10870,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (type $i64_i32_i32_=>_i32) (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -10770,7 +10888,6 @@ (local $uy1 i32) (local $m f32) (local $ux1 i32) - (local $10 i32) (local $shift i32) local.get $y f32.abs @@ -10918,8 +11035,6 @@ local.get $ex local.get $ey i32.gt_s - local.set $10 - local.get $10 if local.get $ux local.get $uy @@ -11011,6 +11126,7 @@ local.get $sm i32.or f32.reinterpret_i32 + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (type $f32_i32_i32_=>_i32) (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -11025,7 +11141,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $this local.set $array @@ -11043,8 +11158,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -11074,7 +11187,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (type $f32_i32_i32_=>_i32) (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -11090,7 +11205,6 @@ (local $uy1 i64) (local $m f64) (local $ux1 i64) - (local $10 i32) (local $shift i64) local.get $y f64.abs @@ -11242,8 +11356,6 @@ local.get $ex local.get $ey i64.gt_s - local.set $10 - local.get $10 if local.get $ux local.get $uy @@ -11337,6 +11449,7 @@ i64.shl i64.or f64.reinterpret_i64 + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (type $f64_i32_i32_=>_i32) (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -11351,7 +11464,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $this local.set $array @@ -11369,8 +11481,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if block $for-continue|0 local.get $ptr @@ -11400,7 +11510,9 @@ end end i32.const 1 + br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 end + return ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (type $f64_i32_i32_=>_i32) (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value @@ -11413,7 +11525,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11430,8 +11541,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11460,7 +11569,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11477,8 +11585,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11507,7 +11613,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11524,8 +11629,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11554,7 +11657,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11571,8 +11673,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11601,7 +11701,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11618,8 +11717,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11648,7 +11745,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11665,8 +11761,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11695,7 +11789,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11712,8 +11805,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11742,7 +11833,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11759,8 +11849,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11789,7 +11877,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11806,8 +11893,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11836,7 +11921,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11853,8 +11937,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11883,7 +11965,6 @@ (local $ptr i32) (local $i i32) (local $k i32) - (local $7 i32) local.get $this local.set $array local.get $fn @@ -11900,8 +11981,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -11928,18 +12007,16 @@ (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) + (local $7 i64) (local $8 i64) - (local $9 i64) (local $temp i64) + (local $10 i64) (local $11 i64) - (local $12 i64) - (local $13 i32) - (local $front|14 i32) - (local $back|15 i32) - (local $temp|16 i32) + (local $front|12 i32) + (local $back|13 i32) + (local $temp|14 i32) local.get $len i32.const 1 i32.gt_u @@ -11968,8 +12045,6 @@ i32.add local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -11983,23 +12058,23 @@ local.set $back local.get $front i64.load $0 - local.tee $8 + local.tee $7 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $8 + local.get $7 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $9 + local.tee $8 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $9 + local.get $8 i64.const 281470681808895 i64.and i64.const 16 @@ -12011,23 +12086,23 @@ local.get $front local.get $back i64.load $0 - local.tee $11 + local.tee $10 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $11 + local.get $10 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $12 + local.tee $11 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $12 + local.get $11 i64.const 281470681808895 i64.and i64.const 16 @@ -12058,15 +12133,13 @@ local.get $i local.get $hlen i32.lt_u - local.set $13 - local.get $13 if local.get $ptr local.get $i i32.const 0 i32.shl i32.add - local.set $front|14 + local.set $front|12 local.get $ptr local.get $tail local.get $i @@ -12074,16 +12147,16 @@ i32.const 0 i32.shl i32.add - local.set $back|15 - local.get $front|14 + local.set $back|13 + local.get $front|12 i32.load8_u $0 - local.set $temp|16 - local.get $front|14 - local.get $back|15 + local.set $temp|14 + local.get $front|12 + local.get $back|13 i32.load8_u $0 i32.store8 $0 - local.get $back|15 - local.get $temp|16 + local.get $back|13 + local.get $temp|14 i32.store8 $0 local.get $i i32.const 1 @@ -12101,6 +12174,7 @@ call $~lib/typedarray/Int8Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/typedarray/Uint8Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -12109,6 +12183,7 @@ call $~lib/typedarray/Uint8Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/typedarray/Uint8ClampedArray#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -12117,19 +12192,18 @@ call $~lib/typedarray/Uint8ClampedArray#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) (local $temp i32) - (local $9 i32) - (local $front|10 i32) - (local $back|11 i32) - (local $temp|12 i32) + (local $front|8 i32) + (local $back|9 i32) + (local $temp|10 i32) local.get $len i32.const 1 i32.gt_u @@ -12162,8 +12236,6 @@ i32.add local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -12208,15 +12280,13 @@ local.get $i local.get $hlen i32.lt_u - local.set $9 - local.get $9 if local.get $ptr local.get $i i32.const 1 i32.shl i32.add - local.set $front|10 + local.set $front|8 local.get $ptr local.get $tail local.get $i @@ -12224,16 +12294,16 @@ i32.const 1 i32.shl i32.add - local.set $back|11 - local.get $front|10 + local.set $back|9 + local.get $front|8 i32.load16_u $0 - local.set $temp|12 - local.get $front|10 - local.get $back|11 + local.set $temp|10 + local.get $front|8 + local.get $back|9 i32.load16_u $0 i32.store16 $0 - local.get $back|11 - local.get $temp|12 + local.get $back|9 + local.get $temp|10 i32.store16 $0 local.get $i i32.const 1 @@ -12251,6 +12321,7 @@ call $~lib/typedarray/Int16Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/typedarray/Uint16Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -12259,12 +12330,12 @@ call $~lib/typedarray/Uint16Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) (local $temp i32) @@ -12298,8 +12369,6 @@ local.get $i local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -12341,6 +12410,7 @@ call $~lib/typedarray/Int32Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/typedarray/Uint32Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -12349,12 +12419,12 @@ call $~lib/typedarray/Uint32Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) (local $temp i64) @@ -12388,8 +12458,6 @@ local.get $i local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -12431,6 +12499,7 @@ call $~lib/typedarray/Int64Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/typedarray/Uint64Array#reverse (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -12439,12 +12508,12 @@ call $~lib/typedarray/Uint64Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) (local $temp f32) @@ -12478,8 +12547,6 @@ local.get $i local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -12521,12 +12588,12 @@ call $~lib/typedarray/Float32Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/util/bytes/REVERSE (type $i32_i32_=>_none) (param $ptr i32) (param $len i32) (local $i i32) (local $tail i32) (local $hlen i32) - (local $5 i32) (local $front i32) (local $back i32) (local $temp f64) @@ -12560,8 +12627,6 @@ local.get $i local.get $hlen i32.lt_u - local.set $5 - local.get $5 if local.get $ptr local.get $i @@ -12603,6 +12668,7 @@ call $~lib/typedarray/Float64Array#get:length call $~lib/util/bytes/REVERSE local.get $this + return ) (func $~lib/typedarray/Int8Array#indexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) (local $array i32) @@ -12613,7 +12679,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $this local.set $array @@ -12663,8 +12728,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -12687,7 +12750,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 end + return ) (func $~lib/typedarray/Int8Array#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) (local $array i32) @@ -12696,7 +12761,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $this local.set $array @@ -12742,8 +12806,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -12766,7 +12828,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 end + return ) (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) block $1of1 @@ -12793,7 +12857,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -12825,8 +12888,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -13282,7 +13343,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -13332,8 +13392,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -13357,7 +13415,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 end + return ) (func $~lib/typedarray/Uint8Array#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) (local $array i32) @@ -13366,7 +13426,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -13412,8 +13471,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -13437,7 +13494,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 end + return ) (func $~lib/typedarray/Uint8Array#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) block $1of1 @@ -13464,7 +13523,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -13496,8 +13554,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -13954,7 +14010,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -14004,8 +14059,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -14029,7 +14082,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end + return ) (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) (local $array i32) @@ -14038,7 +14093,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $this local.set $array @@ -14084,8 +14138,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -14109,7 +14161,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end + return ) (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) block $1of1 @@ -14136,7 +14190,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -14168,8 +14221,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -14626,7 +14677,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $this local.set $array @@ -14676,8 +14726,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -14700,7 +14748,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 end + return ) (func $~lib/typedarray/Int16Array#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) (local $array i32) @@ -14709,7 +14759,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $this local.set $array @@ -14755,8 +14804,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -14779,7 +14826,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 end + return ) (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) block $1of1 @@ -14806,7 +14855,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -14838,8 +14886,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -15295,7 +15341,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $this local.set $array @@ -15345,8 +15390,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -15370,7 +15413,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 end + return ) (func $~lib/typedarray/Uint16Array#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) (local $array i32) @@ -15379,7 +15424,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $this local.set $array @@ -15425,8 +15469,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -15450,7 +15492,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 end + return ) (func $~lib/typedarray/Uint16Array#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) block $1of1 @@ -15477,7 +15521,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -15509,8 +15552,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -15967,7 +16008,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $this local.set $array @@ -16017,8 +16057,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -16040,7 +16078,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 end + return ) (func $~lib/typedarray/Int32Array#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) (local $array i32) @@ -16049,7 +16089,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $this local.set $array @@ -16095,8 +16134,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -16118,7 +16155,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 end + return ) (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) block $1of1 @@ -16145,7 +16184,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -16177,8 +16215,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -16633,7 +16669,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $this local.set $array @@ -16683,8 +16718,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -16706,7 +16739,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 end + return ) (func $~lib/typedarray/Uint32Array#lastIndexOf (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) (local $array i32) @@ -16715,7 +16750,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $this local.set $array @@ -16761,8 +16795,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -16784,7 +16816,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 end + return ) (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (type $i32_i32_i32_=>_i32) (param $this i32) (param $searchElement i32) (param $fromIndex i32) (result i32) block $1of1 @@ -16811,7 +16845,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -16843,8 +16876,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -17299,7 +17330,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $this local.set $array @@ -17349,8 +17379,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -17372,7 +17400,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 end + return ) (func $~lib/typedarray/Int64Array#lastIndexOf (type $i32_i64_i32_=>_i32) (param $this i32) (param $searchElement i64) (param $fromIndex i32) (result i32) (local $array i32) @@ -17381,7 +17411,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $this local.set $array @@ -17427,8 +17456,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -17450,7 +17477,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 end + return ) (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (type $i32_i64_i32_=>_i32) (param $this i32) (param $searchElement i64) (param $fromIndex i32) (result i32) block $1of1 @@ -17477,7 +17506,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -17509,8 +17537,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -17966,7 +17992,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $this local.set $array @@ -18016,8 +18041,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -18039,7 +18062,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 end + return ) (func $~lib/typedarray/Uint64Array#lastIndexOf (type $i32_i64_i32_=>_i32) (param $this i32) (param $searchElement i64) (param $fromIndex i32) (result i32) (local $array i32) @@ -18048,7 +18073,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $this local.set $array @@ -18094,8 +18118,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -18117,7 +18139,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 end + return ) (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (type $i32_i64_i32_=>_i32) (param $this i32) (param $searchElement i64) (param $fromIndex i32) (result i32) block $1of1 @@ -18144,7 +18168,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18176,8 +18199,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -18633,7 +18654,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $this local.set $array @@ -18683,8 +18703,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -18706,7 +18724,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 end + return ) (func $~lib/typedarray/Float32Array#lastIndexOf (type $i32_f32_i32_=>_i32) (param $this i32) (param $searchElement f32) (param $fromIndex i32) (result i32) (local $array i32) @@ -18715,7 +18735,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $this local.set $array @@ -18761,8 +18780,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -18784,7 +18801,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 end + return ) (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (type $i32_f32_i32_=>_i32) (param $this i32) (param $searchElement f32) (param $fromIndex i32) (result i32) block $1of1 @@ -18811,7 +18830,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18843,8 +18861,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -19300,7 +19316,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $this local.set $array @@ -19350,8 +19365,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -19373,7 +19386,9 @@ end end i32.const -1 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 end + return ) (func $~lib/typedarray/Float64Array#lastIndexOf (type $i32_f64_i32_=>_i32) (param $this i32) (param $searchElement f64) (param $fromIndex i32) (result i32) (local $array i32) @@ -19382,7 +19397,6 @@ (local $index i32) (local $len i32) (local $dataStart i32) - (local $9 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $this local.set $array @@ -19428,8 +19442,6 @@ local.get $index i32.const 0 i32.ge_s - local.set $9 - local.get $9 if local.get $dataStart local.get $index @@ -19451,7 +19463,9 @@ end end i32.const -1 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 end + return ) (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (type $i32_f64_i32_=>_i32) (param $this i32) (param $searchElement f64) (param $fromIndex i32) (result i32) block $1of1 @@ -19478,7 +19492,6 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $sliced i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -19510,8 +19523,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -19967,7 +19978,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) (local $elem f64) block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $this @@ -20020,8 +20030,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -20058,6 +20066,7 @@ i32.const 0 br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 end + return ) (func $~lib/typedarray/Float32Array#includes (type $i32_f32_i32_=>_i32) (param $this i32) (param $searchElement f32) (param $fromIndex i32) (result i32) (local $array i32) @@ -20068,7 +20077,6 @@ (local $8 i32) (local $9 i32) (local $dataStart i32) - (local $11 i32) (local $elem f32) block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $this @@ -20121,8 +20129,6 @@ local.get $index local.get $len i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $index @@ -20159,6 +20165,7 @@ i32.const 0 br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 end + return ) (func $~lib/util/number/decimalCount32 (type $i32_=>_i32) (param $value i32) (result i32) local.get $value @@ -20216,24 +20223,21 @@ unreachable ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -20292,19 +20296,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 6988 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -20332,13 +20336,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -20359,13 +20363,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -20413,14 +20414,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -20447,8 +20449,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -20469,8 +20469,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -20486,6 +20484,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -20589,6 +20588,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) @@ -20719,6 +20719,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/typedarray/Int8Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -20727,12 +20728,12 @@ call $~lib/typedarray/Int8Array#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -20803,8 +20804,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -20833,6 +20832,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -20875,6 +20875,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) @@ -20946,6 +20947,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/typedarray/Uint8Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -20954,6 +20956,7 @@ call $~lib/typedarray/Uint8Array#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/typedarray/Uint8ClampedArray#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -20962,6 +20965,7 @@ call $~lib/typedarray/Uint8ClampedArray#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) @@ -21107,6 +21111,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/typedarray/Int16Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -21115,6 +21120,7 @@ call $~lib/typedarray/Int16Array#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) @@ -21186,6 +21192,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/typedarray/Uint16Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -21194,6 +21201,7 @@ call $~lib/typedarray/Uint16Array#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) @@ -21287,6 +21295,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/typedarray/Int32Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -21295,6 +21304,7 @@ call $~lib/typedarray/Int32Array#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/util/number/itoa_buffered (type $i32_i32_=>_i32) (param $buffer i32) (param $value i32) (result i32) (local $sign i32) @@ -21360,6 +21370,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/typedarray/Uint32Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -21368,6 +21379,7 @@ call $~lib/typedarray/Uint32Array#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/util/number/decimalCount64High (type $i64_=>_i32) (param $value i64) (result i32) local.get $value @@ -21429,7 +21441,6 @@ unreachable ) (func $~lib/util/number/utoa64_dec_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) (local $t i64) (local $r i32) (local $b i32) @@ -21444,8 +21455,6 @@ local.get $num i64.const 100000000 i64.ge_u - local.set $3 - local.get $3 if local.get $num i64.const 100000000 @@ -21675,6 +21684,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/typedarray/Int64Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -21683,6 +21693,7 @@ call $~lib/typedarray/Int64Array#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/util/number/itoa_buffered (type $i32_i64_=>_i32) (param $buffer i32) (param $value i64) (result i32) (local $sign i32) @@ -21780,6 +21791,7 @@ local.get $sign local.get $decimals i32.add + return ) (func $~lib/typedarray/Uint64Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -21788,6 +21800,7 @@ call $~lib/typedarray/Uint64Array#get:length local.get $separator call $~lib/util/string/joinIntegerArray + return ) (func $~lib/util/number/genDigits (type $i32_i64_i32_i64_i32_i64_i32_=>_i32) (param $buffer i32) (param $w_frc i64) (param $w_exp i32) (param $mp_frc i64) (param $mp_exp i32) (param $delta i64) (param $sign i32) (result i32) (local $one_exp i32) @@ -21798,32 +21811,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $15 i32) (local $d i32) + (local $16 i32) (local $17 i32) - (local $18 i32) (local $tmp i64) - (local $buffer|20 i32) - (local $len|21 i32) - (local $delta|22 i64) + (local $buffer|19 i32) + (local $len|20 i32) + (local $delta|21 i64) (local $rest i64) (local $ten_kappa i64) (local $wp_w i64) (local $lastp i32) (local $digit i32) + (local $d|27 i64) (local $28 i32) - (local $29 i32) - (local $d|30 i64) - (local $31 i32) - (local $buffer|32 i32) - (local $len|33 i32) - (local $delta|34 i64) - (local $rest|35 i64) - (local $ten_kappa|36 i64) - (local $wp_w|37 i64) - (local $lastp|38 i32) - (local $digit|39 i32) - (local $40 i32) + (local $buffer|29 i32) + (local $len|30 i32) + (local $delta|31 i64) + (local $rest|32 i64) + (local $ten_kappa|33 i64) + (local $wp_w|34 i64) + (local $lastp|35 i32) + (local $digit|36 i32) i32.const 0 local.get $mp_exp i32.sub @@ -21860,8 +21869,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $15 - local.get $15 if block $break|1 block $case10|1 @@ -21876,44 +21883,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $17 - local.get $17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -22025,11 +22032,11 @@ if local.get $buffer local.get $len - local.tee $18 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $18 + local.get $17 i32.const 1 i32.shl i32.add @@ -22061,11 +22068,11 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $buffer|20 + local.set $buffer|19 local.get $len - local.set $len|21 + local.set $len|20 local.get $delta - local.set $delta|22 + local.set $delta|21 local.get $tmp local.set $rest i32.const 9712 @@ -22080,8 +22087,8 @@ local.set $ten_kappa local.get $wp_w_frc local.set $wp_w - local.get $buffer|20 - local.get $len|21 + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 @@ -22096,7 +22103,7 @@ local.get $wp_w i64.lt_u if (result i32) - local.get $delta|22 + local.get $delta|21 local.get $rest i64.sub local.get $ten_kappa @@ -22126,8 +22133,6 @@ else i32.const 0 end - local.set $28 - local.get $28 if local.get $digit i32.const 1 @@ -22151,8 +22156,6 @@ end loop $while-continue|4 i32.const 1 - local.set $29 - local.get $29 if local.get $p2 i64.const 10 @@ -22166,8 +22169,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d|30 - local.get $d|30 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -22176,16 +22179,16 @@ if local.get $buffer local.get $len - local.tee $31 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $31 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d|30 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and @@ -22220,79 +22223,77 @@ i64.mul local.set $wp_w_frc local.get $buffer - local.set $buffer|32 + local.set $buffer|29 local.get $len - local.set $len|33 + local.set $len|30 local.get $delta - local.set $delta|34 + local.set $delta|31 local.get $p2 - local.set $rest|35 + local.set $rest|32 local.get $one_frc - local.set $ten_kappa|36 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $wp_w|37 - local.get $buffer|32 - local.get $len|33 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $lastp|38 - local.get $lastp|38 + local.set $lastp|35 + local.get $lastp|35 i32.load16_u $0 - local.set $digit|39 + local.set $digit|36 loop $while-continue|6 - local.get $rest|35 - local.get $wp_w|37 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $delta|34 - local.get $rest|35 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $ten_kappa|36 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $wp_w|37 - local.get $rest|35 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $40 - local.get $40 if - local.get $digit|39 + local.get $digit|36 i32.const 1 i32.sub - local.set $digit|39 - local.get $rest|35 - local.get $ten_kappa|36 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $rest|35 + local.set $rest|32 br $while-continue|6 end end - local.get $lastp|38 - local.get $digit|39 + local.get $lastp|35 + local.get $digit|36 i32.store16 $0 local.get $len return @@ -22305,26 +22306,24 @@ (func $~lib/util/number/prettify (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) (local $i i32) - (local $5 i32) (local $ptr i32) (local $offset i32) - (local $i|8 i32) - (local $9 i32) - (local $buffer|10 i32) - (local $k|11 i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) (local $sign i32) (local $decimals i32) - (local $buffer|14 i32) + (local $buffer|12 i32) (local $num i32) - (local $offset|16 i32) + (local $offset|14 i32) (local $len i32) - (local $buffer|18 i32) - (local $k|19 i32) - (local $sign|20 i32) - (local $decimals|21 i32) - (local $buffer|22 i32) - (local $num|23 i32) - (local $offset|24 i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -22365,8 +22364,6 @@ local.get $i local.get $kk i32.lt_s - local.set $5 - local.get $5 if local.get $buffer local.get $i @@ -22470,25 +22467,23 @@ i32.or i32.store $0 i32.const 2 - local.set $i|8 + local.set $i|7 loop $for-loop|1 - local.get $i|8 + local.get $i|7 local.get $offset i32.lt_s - local.set $9 - local.get $9 if local.get $buffer - local.get $i|8 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 $0 - local.get $i|8 + local.get $i|7 i32.const 1 i32.add - local.set $i|8 + local.set $i|7 br $for-loop|1 end end @@ -22504,51 +22499,54 @@ local.get $buffer i32.const 101 i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $buffer|10 - local.get $kk - i32.const 1 - i32.sub - local.set $k|11 - local.get $k|11 - i32.const 0 - i32.lt_s - local.set $sign - local.get $sign - if - i32.const 0 - local.get $k|11 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $k|11 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 $0 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $k|11 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals - local.get $buffer|10 - local.set $buffer|14 - local.get $k|11 - local.set $num - local.get $decimals - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num - local.get $offset|16 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|10 - i32.const 45 - i32.const 43 - local.get $sign - select - i32.store16 $0 - local.get $decimals local.set $length local.get $length i32.const 2 @@ -22578,53 +22576,56 @@ i32.const 101 i32.store16 $0 offset=2 local.get $length - local.get $buffer - local.get $len - i32.add - i32.const 4 - i32.add - local.set $buffer|18 - local.get $kk - i32.const 1 - i32.sub - local.set $k|19 - local.get $k|19 - i32.const 0 - i32.lt_s - local.set $sign|20 - local.get $sign|20 - if - i32.const 0 - local.get $k|19 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $k|19 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 $0 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $k|19 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals|21 - local.get $buffer|18 - local.set $buffer|22 - local.get $k|19 - local.set $num|23 - local.get $decimals|21 - local.set $offset|24 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|22 - local.get $num|23 - local.get $offset|24 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|18 - i32.const 45 - i32.const 43 - local.get $sign|20 - select - i32.store16 $0 - local.get $decimals|21 i32.add local.set $length local.get $length @@ -22713,375 +22714,393 @@ i32.const 45 i32.store16 $0 end - local.get $value - local.set $value|3 - local.get $buffer - local.set $buffer|4 - local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|12 - local.get $e - i32.const 1 - i32.sub - local.set $exp|13 - local.get $frc|12 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|12 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|12 - local.get $exp|13 - local.get $off - i32.sub - local.set $exp|13 - i32.const 1 - local.get $f - i64.const 4503599627370496 - i64.eq - i32.add - local.set $m - local.get $frc|12 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 8840 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 9536 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $frc - i64.clz - i32.wrap_i64 - local.set $off|20 - local.get $frc - local.get $off|20 - i64.extend_i32_s - i64.shl - local.set $frc - local.get $exp - local.get $off|20 - i32.sub - local.set $exp - global.get $~lib/util/number/_frc_pow - local.set $frc_pow - global.get $~lib/util/number/_exp_pow - local.set $exp_pow - local.get $frc - local.set $u - local.get $frc_pow - local.set $v - local.get $u - i64.const 4294967295 - i64.and - local.set $u0 - local.get $v - i64.const 4294967295 - i64.and - local.set $v0 - local.get $u - i64.const 32 - i64.shr_u - local.set $u1 - local.get $v - i64.const 32 - i64.shr_u - local.set $v1 - local.get $u0 - local.get $v0 - i64.mul - local.set $l - local.get $u1 - local.get $v0 - i64.mul - local.get $l - i64.const 32 - i64.shr_u - i64.add - local.set $t - local.get $u0 - local.get $v1 - i64.mul - local.get $t - i64.const 4294967295 - i64.and - i64.add - local.set $w - local.get $w - i64.const 2147483647 - i64.add - local.set $w - local.get $t - i64.const 32 - i64.shr_u - local.set $t - local.get $w - i64.const 32 - i64.shr_u - local.set $w - local.get $u1 - local.get $v1 - i64.mul - local.get $t - i64.add - local.get $w - i64.add - local.set $w_frc - local.get $exp - local.set $e1 - local.get $exp_pow - local.set $e2 - local.get $e1 - local.get $e2 - i32.add - i32.const 64 - i32.add - local.set $w_exp - global.get $~lib/util/number/_frc_plus - local.set $u|36 - local.get $frc_pow - local.set $v|37 - local.get $u|36 - i64.const 4294967295 - i64.and - local.set $u0|38 - local.get $v|37 - i64.const 4294967295 - i64.and - local.set $v0|39 - local.get $u|36 - i64.const 32 - i64.shr_u - local.set $u1|40 - local.get $v|37 - i64.const 32 - i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 - i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 - i64.mul - local.get $l|42 - i64.const 32 - i64.shr_u - i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.const 4294967295 - i64.and - i64.add - local.set $w|44 - local.get $w|44 - i64.const 2147483647 - i64.add - local.set $w|44 - local.get $t|43 - i64.const 32 - i64.shr_u - local.set $t|43 - local.get $w|44 - i64.const 32 - i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.add - local.get $w|44 - i64.add - i64.const 1 - i64.sub - local.set $wp_frc - global.get $~lib/util/number/_exp - local.set $e1|46 - local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 - i32.add - i32.const 64 - i32.add - local.set $wp_exp - global.get $~lib/util/number/_frc_minus - local.set $u|49 - local.get $frc_pow - local.set $v|50 - local.get $u|49 - i64.const 4294967295 - i64.and - local.set $u0|51 - local.get $v|50 - i64.const 4294967295 - i64.and - local.set $v0|52 - local.get $u|49 - i64.const 32 - i64.shr_u - local.set $u1|53 - local.get $v|50 - i64.const 32 - i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 - i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 - i64.mul - local.get $l|55 - i64.const 32 - i64.shr_u - i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.const 4294967295 - i64.and - i64.add - local.set $w|57 - local.get $w|57 - i64.const 2147483647 - i64.add - local.set $w|57 - local.get $t|56 - i64.const 32 - i64.shr_u - local.set $t|56 - local.get $w|57 - i64.const 32 - i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.add - local.get $w|57 - i64.add - i64.const 1 - i64.add - local.set $wm_frc - local.get $wp_frc - local.get $wm_frc - i64.sub - local.set $delta - local.get $buffer|4 - local.get $w_frc - local.get $w_exp - local.get $wp_frc - local.get $wp_exp - local.get $delta - local.get $sign|5 - call $~lib/util/number/genDigits + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|3 + local.get $buffer + local.set $buffer|4 + local.get $sign + local.set $sign|5 + local.get $value|3 + i64.reinterpret_f64 + local.set $uv + local.get $uv + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv + i64.const 4503599627370495 + i64.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid + i64.add + local.set $frc + local.get $exp + i32.const 1 + local.get $exp + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|12 + local.get $e + i32.const 1 + i32.sub + local.set $exp|13 + local.get $frc|12 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|12 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|12 + local.get $exp|13 + local.get $off + i32.sub + local.set $exp|13 + i32.const 1 + local.get $f + i64.const 4503599627370496 + i64.eq + i32.add + local.set $m + local.get $frc|12 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 8840 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load $0 + global.set $~lib/util/number/_frc_pow + i32.const 9536 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|20 + local.get $frc + local.get $off|20 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|20 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|36 + local.get $frc_pow + local.set $v|37 + local.get $u|36 + i64.const 4294967295 + i64.and + local.set $u0|38 + local.get $v|37 + i64.const 4294967295 + i64.and + local.set $v0|39 + local.get $u|36 + i64.const 32 + i64.shr_u + local.set $u1|40 + local.get $v|37 + i64.const 32 + i64.shr_u + local.set $v1|41 + local.get $u0|38 + local.get $v0|39 + i64.mul + local.set $l|42 + local.get $u1|40 + local.get $v0|39 + i64.mul + local.get $l|42 + i64.const 32 + i64.shr_u + i64.add + local.set $t|43 + local.get $u0|38 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.const 4294967295 + i64.and + i64.add + local.set $w|44 + local.get $w|44 + i64.const 2147483647 + i64.add + local.set $w|44 + local.get $t|43 + i64.const 32 + i64.shr_u + local.set $t|43 + local.get $w|44 + i64.const 32 + i64.shr_u + local.set $w|44 + local.get $u1|40 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.add + local.get $w|44 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|46 + local.get $exp_pow + local.set $e2|47 + local.get $e1|46 + local.get $e2|47 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|49 + local.get $frc_pow + local.set $v|50 + local.get $u|49 + i64.const 4294967295 + i64.and + local.set $u0|51 + local.get $v|50 + i64.const 4294967295 + i64.and + local.set $v0|52 + local.get $u|49 + i64.const 32 + i64.shr_u + local.set $u1|53 + local.get $v|50 + i64.const 32 + i64.shr_u + local.set $v1|54 + local.get $u0|51 + local.get $v0|52 + i64.mul + local.set $l|55 + local.get $u1|53 + local.get $v0|52 + i64.mul + local.get $l|55 + i64.const 32 + i64.shr_u + i64.add + local.set $t|56 + local.get $u0|51 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.const 4294967295 + i64.and + i64.add + local.set $w|57 + local.get $w|57 + i64.const 2147483647 + i64.add + local.set $w|57 + local.get $t|56 + i64.const 32 + i64.shr_u + local.set $t|56 + local.get $w|57 + i64.const 32 + i64.shr_u + local.set $w|57 + local.get $u1|53 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.add + local.get $w|57 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|4 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|5 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 + end local.set $len local.get $buffer local.get $sign @@ -23097,6 +23116,7 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/util/number/dtoa_buffered (type $i32_f64_=>_i32) (param $buffer i32) (param $value f64) (result i32) (local $sign i32) @@ -23169,6 +23189,7 @@ local.get $buffer local.get $value call $~lib/util/number/dtoa_core + return ) (func $~lib/typedarray/Float32Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -23177,6 +23198,7 @@ call $~lib/typedarray/Float32Array#get:length local.get $separator call $~lib/util/string/joinFloatArray + return ) (func $~lib/typedarray/Float64Array#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) local.get $this @@ -23185,12 +23207,14 @@ call $~lib/typedarray/Float64Array#get:length local.get $separator call $~lib/util/string/joinFloatArray + return ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.const 20 i32.sub call $~lib/rt/common/OBJECT#get:rtSize + return ) (func $~lib/typedarray/Uint8Array.wrap@varargs (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) block $2of2 @@ -23453,7 +23477,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -23508,8 +23531,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -23545,6 +23566,7 @@ local.get $index i32.add i32.load8_s $0 + return ) (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this @@ -23554,6 +23576,7 @@ i32.shl i32.add i32.load8_s $0 + return ) (func $~lib/array/Array#get:length_ (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -23562,6 +23585,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -23575,7 +23599,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -23630,8 +23653,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -23680,7 +23701,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -23735,8 +23755,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -23774,6 +23792,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -23787,7 +23806,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -23842,8 +23860,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -23951,7 +23967,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -24006,8 +24021,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -24104,7 +24117,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -24159,8 +24171,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -24197,6 +24207,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/typedarray/Uint8Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this @@ -24204,6 +24215,7 @@ local.get $index i32.add i32.load8_u $0 + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -24217,6 +24229,7 @@ i32.shl i32.add i32.load8_u $0 + return ) (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -24226,7 +24239,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -24281,8 +24293,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -24331,7 +24341,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -24386,8 +24395,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -24426,7 +24433,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -24481,8 +24487,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -24590,7 +24594,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -24645,8 +24648,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -24743,7 +24744,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -24798,8 +24798,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -24854,6 +24852,7 @@ local.get $index i32.add i32.load8_u $0 + return ) (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -24863,7 +24862,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -24918,8 +24916,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -24971,7 +24967,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -25026,8 +25021,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -25088,7 +25081,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -25143,8 +25135,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -25255,7 +25245,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -25310,8 +25299,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -25368,7 +25355,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -25422,8 +25408,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -25480,7 +25464,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -25535,8 +25518,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -25573,6 +25554,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/typedarray/Int16Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this @@ -25582,6 +25564,7 @@ i32.shl i32.add i32.load16_s $0 + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -25595,6 +25578,7 @@ i32.shl i32.add i32.load16_s $0 + return ) (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -25604,7 +25588,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -25659,8 +25642,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -25709,7 +25690,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -25764,8 +25744,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -25804,7 +25782,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -25859,8 +25836,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -25909,7 +25884,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -25964,8 +25938,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -26062,7 +26034,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -26117,8 +26088,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -26156,7 +26125,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -26211,8 +26179,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -26249,6 +26215,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/typedarray/Uint16Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this @@ -26258,6 +26225,7 @@ i32.shl i32.add i32.load16_u $0 + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -26271,6 +26239,7 @@ i32.shl i32.add i32.load16_u $0 + return ) (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -26280,7 +26249,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -26335,8 +26303,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -26385,7 +26351,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -26440,8 +26405,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -26480,7 +26443,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -26535,8 +26497,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -26585,7 +26545,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -26640,8 +26599,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -26738,7 +26695,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -26793,8 +26749,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -26891,6 +26845,7 @@ i32.shl i32.add i32.load $0 + return ) (func $~lib/array/Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this @@ -26900,6 +26855,7 @@ i32.shl i32.add i32.load $0 + return ) (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -26909,7 +26865,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -26964,8 +26919,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27014,7 +26967,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -27069,8 +27021,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27109,7 +27059,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -27164,8 +27113,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27214,7 +27161,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -27269,8 +27215,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27308,7 +27252,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -27363,8 +27306,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27402,7 +27343,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -27457,8 +27397,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27554,6 +27492,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/typedarray/Uint32Array#__uget (type $i32_i32_=>_i32) (param $this i32) (param $index i32) (result i32) local.get $this @@ -27563,6 +27502,7 @@ i32.shl i32.add i32.load $0 + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -27576,6 +27516,7 @@ i32.shl i32.add i32.load $0 + return ) (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -27585,7 +27526,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -27640,8 +27580,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27690,7 +27628,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -27745,8 +27682,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27785,7 +27720,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -27840,8 +27774,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27890,7 +27822,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -27945,8 +27876,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -27984,7 +27913,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -28039,8 +27967,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28078,7 +28004,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -28133,8 +28058,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28172,7 +28095,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -28227,8 +28149,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28266,6 +28186,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/typedarray/Int64Array#__uget (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) local.get $this @@ -28275,6 +28196,7 @@ i32.shl i32.add i64.load $0 + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -28288,6 +28210,7 @@ i32.shl i32.add i64.load $0 + return ) (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -28297,7 +28220,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -28352,8 +28274,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28461,7 +28381,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -28516,8 +28435,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28566,7 +28483,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -28621,8 +28537,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28661,7 +28575,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -28716,8 +28629,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28756,7 +28667,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -28811,8 +28721,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28851,7 +28759,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -28906,8 +28813,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -28945,6 +28850,7 @@ (func $~lib/array/Array#get:length (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/array/Array#get:length_ + return ) (func $~lib/typedarray/Uint64Array#__uget (type $i32_i32_=>_i64) (param $this i32) (param $index i32) (result i64) local.get $this @@ -28954,6 +28860,7 @@ i32.shl i32.add i64.load $0 + return ) (func $~lib/array/Array#get:dataStart (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -28967,6 +28874,7 @@ i32.shl i32.add i64.load $0 + return ) (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -28976,7 +28884,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -29031,8 +28938,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29140,7 +29045,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f64) local.get $this @@ -29195,8 +29099,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29245,7 +29147,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -29300,8 +29201,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29340,7 +29239,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -29395,8 +29293,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29435,7 +29331,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -29490,8 +29385,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29530,7 +29423,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -29585,8 +29477,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29625,6 +29515,7 @@ i32.shl i32.add f32.load $0 + return ) (func $~lib/array/Array#__uget (type $i32_i32_=>_f32) (param $this i32) (param $index i32) (result f32) local.get $this @@ -29634,6 +29525,7 @@ i32.shl i32.add f32.load $0 + return ) (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -29702,7 +29594,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -29757,8 +29648,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29797,7 +29686,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -29852,8 +29740,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29892,7 +29778,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -29947,8 +29832,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -29987,7 +29870,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -30042,8 +29924,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30082,7 +29962,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -30137,8 +30016,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30177,6 +30054,7 @@ i32.shl i32.add f64.load $0 + return ) (func $~lib/array/Array#__uget (type $i32_i32_=>_f64) (param $this i32) (param $index i32) (result f64) local.get $this @@ -30186,6 +30064,7 @@ i32.shl i32.add f64.load $0 + return ) (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (type $i32_i32_i32_=>_none) (param $this i32) (param $source i32) (param $offset i32) (local $target i32) @@ -30195,7 +30074,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -30250,8 +30128,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30291,7 +30167,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i64) local.get $this @@ -30346,8 +30221,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30386,7 +30259,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -30441,8 +30313,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30481,7 +30351,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -30536,8 +30405,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30576,7 +30443,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -30631,8 +30497,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30671,7 +30535,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value f32) local.get $this @@ -30726,8 +30589,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30779,7 +30640,6 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) local.get $this @@ -30834,8 +30694,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30892,11 +30750,10 @@ (local $targetStart i32) (local $sourceStart i32) (local $i i32) - (local $10 i32) (local $ptr i32) (local $value i32) + (local $12 i32) (local $13 i32) - (local $14 i32) local.get $this local.set $target local.get $source @@ -30949,8 +30806,6 @@ local.get $i local.get $sourceLen i32.lt_s - local.set $10 - local.get $10 if local.get $targetStart local.get $i @@ -30974,11 +30829,11 @@ drop local.get $ptr i32.const 255 - local.tee $13 + local.tee $12 local.get $value - local.tee $14 + local.tee $13 + local.get $12 local.get $13 - local.get $14 i32.lt_u select i32.store8 $0 @@ -30993,14 +30848,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -31032,8 +30884,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -31077,8 +30927,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -31127,8 +30975,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -31182,11 +31028,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -31246,8 +31089,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -31262,8 +31103,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -31330,8 +31169,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -31342,15 +31179,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -31369,8 +31204,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -31401,8 +31234,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -31431,8 +31262,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -31504,28 +31333,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -31648,12 +31473,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.1 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.1 + end i32.const 2 i32.add local.set $lgPlus2 @@ -31676,8 +31504,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -31717,13 +31543,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -31742,8 +31568,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -31766,15 +31590,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -31793,16 +31617,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -31815,7 +31637,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -31829,17 +31651,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -31867,29 +31689,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -31901,10 +31721,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -31921,6 +31741,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -31945,14 +31766,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -31984,8 +31802,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -32029,8 +31845,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -32079,8 +31893,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -32134,11 +31946,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -32198,8 +32007,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -32214,8 +32021,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -32282,8 +32087,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -32294,15 +32097,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -32321,8 +32122,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -32353,8 +32152,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -32383,8 +32180,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -32456,28 +32251,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -32600,12 +32391,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.2 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.2 + end i32.const 2 i32.add local.set $lgPlus2 @@ -32628,8 +32422,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -32669,13 +32461,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -32694,8 +32486,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -32718,15 +32508,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -32745,16 +32535,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -32767,7 +32555,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -32781,17 +32569,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -32819,29 +32607,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -32853,10 +32639,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -32873,6 +32659,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -32916,6 +32703,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|1 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -32954,14 +32742,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -32993,8 +32778,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -33038,8 +32821,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -33088,8 +32869,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -33143,11 +32922,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -33207,8 +32983,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -33223,8 +32997,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -33291,8 +33063,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -33303,15 +33073,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -33330,8 +33098,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -33362,8 +33128,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -33392,8 +33156,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -33465,28 +33227,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -33609,12 +33367,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.3 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.3 + end i32.const 2 i32.add local.set $lgPlus2 @@ -33637,8 +33398,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -33678,13 +33437,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -33703,8 +33462,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -33727,15 +33484,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -33754,16 +33511,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -33776,7 +33531,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -33790,17 +33545,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -33828,29 +33583,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -33862,10 +33615,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -33882,6 +33635,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -33906,14 +33660,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -33945,8 +33696,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -33990,8 +33739,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -34040,8 +33787,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -34095,11 +33840,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -34159,8 +33901,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -34175,8 +33915,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -34243,8 +33981,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -34255,15 +33991,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -34282,8 +34016,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -34314,8 +34046,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -34344,8 +34074,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -34417,28 +34145,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -34561,12 +34285,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.4 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.4 + end i32.const 2 i32.add local.set $lgPlus2 @@ -34589,8 +34316,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -34630,13 +34355,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -34655,8 +34380,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -34679,15 +34402,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -34706,16 +34429,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -34728,7 +34449,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -34742,17 +34463,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -34780,29 +34501,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -34814,10 +34533,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -34834,6 +34553,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -34872,14 +34592,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -34911,8 +34628,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -34956,8 +34671,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -35006,8 +34719,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -35061,11 +34772,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -35125,8 +34833,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -35141,8 +34847,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -35209,8 +34913,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -35221,15 +34923,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -35248,8 +34948,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -35280,8 +34978,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -35310,8 +35006,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -35383,28 +35077,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -35527,12 +35217,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.5 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.5 + end i32.const 2 i32.add local.set $lgPlus2 @@ -35555,8 +35248,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -35596,13 +35287,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -35621,8 +35312,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -35645,15 +35334,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -35672,16 +35361,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -35694,7 +35381,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -35708,17 +35395,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -35746,29 +35433,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -35780,10 +35465,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -35800,6 +35485,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -35818,14 +35504,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i32) (local $b i32) (local $min i32) (local $max i32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -35857,8 +35540,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -35902,8 +35583,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -35952,8 +35631,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -36007,11 +35684,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -36071,8 +35745,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -36087,8 +35759,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -36155,8 +35825,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -36167,15 +35835,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i32) (local $b i32) local.get $m @@ -36194,8 +35860,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -36226,8 +35890,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -36256,8 +35918,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -36329,28 +35989,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -36473,12 +36129,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.6 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.6 + end i32.const 2 i32.add local.set $lgPlus2 @@ -36501,8 +36160,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -36542,13 +36199,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -36567,8 +36224,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -36591,15 +36246,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -36618,16 +36273,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -36640,7 +36293,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -36654,17 +36307,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -36692,29 +36345,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -36726,10 +36377,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -36746,6 +36397,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i32_i32_=>_i32) (param $a i32) (param $b i32) (result i32) local.get $a @@ -36768,14 +36420,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i64) (local $b i64) (local $min i64) (local $max i64) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -36807,8 +36456,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -36852,8 +36499,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -36902,8 +36547,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -36957,11 +36600,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i64) - (local $9 i32) local.get $i local.get $right i32.eq @@ -37021,8 +36661,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -37037,8 +36675,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -37105,8 +36741,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -37117,15 +36751,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i64) (local $b i64) local.get $m @@ -37144,8 +36776,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -37176,8 +36806,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -37206,8 +36834,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -37279,28 +36905,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -37423,12 +37045,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.7 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.7 + end i32.const 2 i32.add local.set $lgPlus2 @@ -37451,8 +37076,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -37492,13 +37115,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -37517,8 +37140,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -37541,15 +37162,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -37568,16 +37189,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -37590,7 +37209,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -37604,17 +37223,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -37642,29 +37261,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -37676,10 +37293,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -37696,6 +37313,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i64_i64_=>_i32) (param $a i64) (param $b i64) (result i32) local.get $a @@ -37718,14 +37336,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a i64) (local $b i64) (local $min i64) (local $max i64) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -37757,8 +37372,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -37802,8 +37415,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -37852,8 +37463,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -37907,11 +37516,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp i64) - (local $9 i32) local.get $i local.get $right i32.eq @@ -37971,8 +37577,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -37987,8 +37591,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -38055,8 +37657,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -38067,15 +37667,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a i64) (local $b i64) local.get $m @@ -38094,8 +37692,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -38126,8 +37722,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -38156,8 +37750,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -38229,28 +37821,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -38373,12 +37961,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.8 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.8 + end i32.const 2 i32.add local.set $lgPlus2 @@ -38401,8 +37992,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -38442,13 +38031,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -38467,8 +38056,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -38491,15 +38078,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -38518,16 +38105,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -38540,7 +38125,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -38554,17 +38139,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -38592,29 +38177,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -38626,10 +38209,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -38646,6 +38229,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $i64_i64_=>_i32) (param $a i64) (param $b i64) (result i32) local.get $a @@ -38668,14 +38252,11 @@ (func $~lib/util/sort/insertionSort (type $i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $left i32) (param $right i32) (param $presorted i32) (param $comparator i32) (local $range i32) (local $i i32) - (local $7 i32) (local $a f32) (local $b f32) (local $min f32) (local $max f32) (local $j i32) - (local $13 i32) - (local $14 i32) i32.const 0 i32.const 1 i32.ge_s @@ -38707,8 +38288,6 @@ local.get $i local.get $right i32.le_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -38752,8 +38331,6 @@ local.get $j local.get $left i32.ge_s - local.set $13 - local.get $13 if local.get $ptr local.get $j @@ -38802,8 +38379,6 @@ local.get $j local.get $left i32.ge_s - local.set $14 - local.get $14 if local.get $ptr local.get $j @@ -38857,11 +38432,8 @@ ) (func $~lib/util/sort/extendRunRight (type $i32_i32_i32_i32_=>_i32) (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) - (local $5 i32) (local $k i32) - (local $7 i32) (local $tmp f32) - (local $9 i32) local.get $i local.get $right i32.eq @@ -38921,8 +38493,6 @@ else i32.const 0 end - local.set $5 - local.get $5 if local.get $j i32.const 1 @@ -38937,8 +38507,6 @@ local.get $i local.get $k i32.lt_s - local.set $7 - local.get $7 if local.get $ptr local.get $i @@ -39005,8 +38573,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $j i32.const 1 @@ -39017,15 +38583,13 @@ end end local.get $j + return ) (func $~lib/util/sort/mergeRuns (type $i32_i32_i32_i32_i32_i32_=>_none) (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) (local $t i32) - (local $9 i32) - (local $10 i32) (local $k i32) - (local $12 i32) (local $a f32) (local $b f32) local.get $m @@ -39044,8 +38608,6 @@ local.get $i local.get $l i32.gt_s - local.set $9 - local.get $9 if local.get $buffer local.get $i @@ -39076,8 +38638,6 @@ local.get $j local.get $r i32.lt_s - local.set $10 - local.get $10 if local.get $buffer local.get $t @@ -39106,8 +38666,6 @@ local.get $k local.get $r i32.le_s - local.set $12 - local.get $12 if local.get $buffer local.get $j @@ -39179,28 +38737,24 @@ (local $leftRunStartBuf i32) (local $leftRunEndBuf i32) (local $i i32) - (local $16 i32) (local $buffer i32) (local $hi i32) (local $endA i32) (local $lenA i32) + (local $20 i32) (local $21 i32) - (local $22 i32) (local $top i32) (local $startA i32) - (local $25 i32) (local $startB i32) (local $endB i32) (local $lenB i32) - (local $29 i32) - (local $30 i32) + (local $27 i32) + (local $28 i32) (local $k i32) - (local $i|32 i32) - (local $33 i32) + (local $i|30 i32) (local $start i32) - (local $i|35 i32) - (local $36 i32) - (local $start|37 i32) + (local $i|32 i32) + (local $start|33 i32) local.get $len i32.const 48 i32.le_s @@ -39323,12 +38877,15 @@ call $~lib/util/sort/insertionSort return end - local.get $len - local.set $n - i32.const 31 - local.get $n - i32.clz - i32.sub + block $~lib/util/sort/log2u|inlined.9 (result i32) + local.get $len + local.set $n + i32.const 31 + local.get $n + i32.clz + i32.sub + br $~lib/util/sort/log2u|inlined.9 + end i32.const 2 i32.add local.set $lgPlus2 @@ -39351,8 +38908,6 @@ local.get $i local.get $lgPlus2 i32.lt_u - local.set $16 - local.get $16 if local.get $leftRunStartBuf local.get $i @@ -39392,13 +38947,13 @@ i32.lt_s if local.get $hi - local.tee $21 + local.tee $20 i32.const 32 i32.const 1 i32.sub - local.tee $22 + local.tee $21 + local.get $20 local.get $21 - local.get $22 i32.lt_s select local.set $endA @@ -39417,8 +38972,6 @@ local.get $endA local.get $hi i32.lt_s - local.set $25 - local.get $25 if local.get $endA i32.const 1 @@ -39441,15 +38994,15 @@ i32.lt_s if local.get $hi - local.tee $29 + local.tee $27 local.get $startB i32.const 32 i32.add i32.const 1 i32.sub - local.tee $30 - local.get $29 - local.get $30 + local.tee $28 + local.get $27 + local.get $28 i32.lt_s select local.set $endB @@ -39468,16 +39021,14 @@ call $~lib/util/sort/nodePower local.set $k local.get $top - local.set $i|32 + local.set $i|30 loop $for-loop|3 - local.get $i|32 + local.get $i|30 local.get $k i32.gt_u - local.set $33 - local.get $33 if local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -39490,7 +39041,7 @@ local.get $ptr local.get $start local.get $leftRunEndBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add @@ -39504,17 +39055,17 @@ local.get $start local.set $startA local.get $leftRunStartBuf - local.get $i|32 + local.get $i|30 i32.const 2 i32.shl i32.add i32.const -1 i32.store $0 end - local.get $i|32 + local.get $i|30 i32.const 1 i32.sub - local.set $i|32 + local.set $i|30 br $for-loop|3 end end @@ -39542,29 +39093,27 @@ end end local.get $top - local.set $i|35 + local.set $i|32 loop $for-loop|4 - local.get $i|35 + local.get $i|32 i32.const 0 i32.ne - local.set $36 - local.get $36 if local.get $leftRunStartBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add i32.load $0 - local.set $start|37 - local.get $start|37 + local.set $start|33 + local.get $start|33 i32.const -1 i32.ne if local.get $ptr - local.get $start|37 + local.get $start|33 local.get $leftRunEndBuf - local.get $i|35 + local.get $i|32 i32.const 2 i32.shl i32.add @@ -39576,10 +39125,10 @@ local.get $comparator call $~lib/util/sort/mergeRuns end - local.get $i|35 + local.get $i|32 i32.const 1 i32.sub - local.set $i|35 + local.set $i|32 br $for-loop|4 end end @@ -39596,6 +39145,7 @@ local.get $comparator call $~lib/util/sort/SORT local.get $this + return ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (type $f32_f32_=>_i32) (param $a f32) (param $b f32) (result i32) (local $ia i32) @@ -39629,6 +39179,7 @@ local.get $ib i32.lt_s i32.sub + return ) (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 (type $f32_f32_=>_i32) (param $a f32) (param $b f32) (result i32) local.get $b @@ -39649,8 +39200,6 @@ i32.sub ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -39661,8 +39210,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -39676,8 +39223,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop @@ -50244,11 +49789,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -50283,8 +49826,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -50311,22 +49852,20 @@ call $~lib/typedarray/Int8Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Int8Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i32.extend8_s @@ -50340,10 +49879,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -50352,11 +49891,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int8Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Int8Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -50427,11 +49966,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -50466,8 +50003,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -50496,22 +50031,20 @@ call $~lib/typedarray/Uint8Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Uint8Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i32.const 255 @@ -50526,10 +50059,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -50538,11 +50071,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint8Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Uint8Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -50613,11 +50146,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -50652,8 +50183,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -50682,22 +50211,20 @@ call $~lib/typedarray/Uint8ClampedArray#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Uint8ClampedArray#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i32.const 255 @@ -50712,10 +50239,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -50724,11 +50251,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Uint8ClampedArray#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -50799,11 +50326,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -50838,8 +50363,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -50866,22 +50389,20 @@ call $~lib/typedarray/Int16Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Int16Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i32.extend16_s @@ -50895,10 +50416,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -50907,11 +50428,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int16Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Int16Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -50982,11 +50503,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -51021,8 +50540,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -51051,22 +50568,20 @@ call $~lib/typedarray/Uint16Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Uint16Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i32.const 65535 @@ -51081,10 +50596,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -51093,11 +50608,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint16Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Uint16Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -51168,11 +50683,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -51207,8 +50720,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -51233,22 +50744,20 @@ call $~lib/typedarray/Int32Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Int32Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i32.eq @@ -51261,10 +50770,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -51273,11 +50782,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int32Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Int32Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -51348,11 +50857,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -51387,8 +50894,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -51413,22 +50918,20 @@ call $~lib/typedarray/Uint32Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Uint32Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i32.eq @@ -51441,10 +50944,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -51453,11 +50956,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint32Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Uint32Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -51528,11 +51031,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -51567,8 +51068,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -51595,22 +51094,20 @@ call $~lib/typedarray/Int64Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Int64Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i64.extend_i32_s @@ -51624,10 +51121,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -51636,11 +51133,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Int64Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Int64Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -51711,11 +51208,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -51750,8 +51245,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -51778,22 +51271,20 @@ call $~lib/typedarray/Uint64Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Uint64Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get i64.extend_i32_s @@ -51807,10 +51298,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -51819,11 +51310,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Uint64Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Uint64Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -51894,11 +51385,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -51933,8 +51422,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -51961,22 +51448,20 @@ call $~lib/typedarray/Float32Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Float32Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get f32.convert_i32_s @@ -51990,10 +51475,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -52002,11 +51487,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Float32Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Float32Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -52077,11 +51562,9 @@ (local $array i32) (local $arrayWithOffset i32) (local $i i32) - (local $5 i32) - (local $i|6 i32) - (local $7 i32) + (local $i|5 i32) (local $reversedSlice i32) - (local $9 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -52116,8 +51599,6 @@ local.get $i local.get $length i32.lt_s - local.set $5 - local.get $5 if local.get $array local.get $i @@ -52144,22 +51625,20 @@ call $~lib/typedarray/Float64Array#reverse drop i32.const 0 - local.set $i|6 + local.set $i|5 loop $for-loop|1 - local.get $i|6 + local.get $i|5 local.get $length i32.lt_s - local.set $7 - local.get $7 if local.get $array - local.get $i|6 + local.get $i|5 call $~lib/typedarray/Float64Array#__get local.get $values local.get $length i32.const 1 i32.sub - local.get $i|6 + local.get $i|5 i32.sub call $~lib/array/Array#__get f64.convert_i32_s @@ -52173,10 +51652,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|6 + local.get $i|5 i32.const 1 i32.add - local.set $i|6 + local.set $i|5 br $for-loop|1 end end @@ -52185,11 +51664,11 @@ i32.const 4 i32.const 8 call $~lib/typedarray/Float64Array#subarray - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=12 - local.get $9 + local.get $7 call $~lib/typedarray/Float64Array#reverse local.tee $reversedSlice i32.store $0 offset=16 @@ -52278,6 +51757,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> (type $none_=>_none) (local $array i32) @@ -52402,6 +51882,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> (type $none_=>_none) (local $array i32) @@ -52526,6 +52007,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> (type $none_=>_none) (local $array i32) @@ -52650,6 +52132,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> (type $none_=>_none) (local $array i32) @@ -52774,6 +52257,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> (type $none_=>_none) (local $array i32) @@ -52898,6 +52382,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> (type $none_=>_none) (local $array i32) @@ -53022,6 +52507,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> (type $none_=>_none) (local $array i32) @@ -53146,6 +52632,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> (type $none_=>_none) (local $array i32) @@ -53270,6 +52757,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> (type $none_=>_none) (local $array i32) @@ -53394,6 +52882,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> (type $none_=>_none) (local $array i32) @@ -53518,6 +53007,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> (type $none_=>_none) (local $array i32) @@ -53623,12 +53113,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -53657,8 +53145,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -53677,11 +53163,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -53704,19 +53190,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Int8Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Int8Array#__get i32.eq i32.eqz @@ -53728,10 +53212,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -53745,12 +53229,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -53779,8 +53261,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -53800,11 +53280,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -53829,19 +53309,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint8Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint8Array#__get i32.eq i32.eqz @@ -53853,10 +53331,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -53870,12 +53348,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -53904,8 +53380,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -53925,11 +53399,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -53956,19 +53430,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint8ClampedArray#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint8ClampedArray#__get i32.eq i32.eqz @@ -53980,10 +53452,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -53997,12 +53469,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -54031,8 +53501,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -54051,11 +53519,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -54084,19 +53552,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Int16Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Int16Array#__get i32.eq i32.eqz @@ -54108,10 +53574,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -54125,12 +53591,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -54159,8 +53623,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -54180,11 +53642,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -54215,19 +53677,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint16Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint16Array#__get i32.eq i32.eqz @@ -54239,10 +53699,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -54256,12 +53716,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -54290,8 +53748,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -54309,11 +53765,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -54346,19 +53802,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Int32Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Int32Array#__get i32.eq i32.eqz @@ -54370,10 +53824,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -54387,12 +53841,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -54421,8 +53873,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -54440,11 +53890,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -54479,19 +53929,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint32Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint32Array#__get i32.eq i32.eqz @@ -54503,10 +53951,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -54520,12 +53968,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -54554,8 +54000,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -54574,11 +54018,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -54615,19 +54059,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Int64Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Int64Array#__get i64.eq i32.eqz @@ -54639,10 +54081,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -54656,12 +54098,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -54690,8 +54130,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -54710,11 +54148,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -54753,19 +54191,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint64Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Uint64Array#__get i64.eq i32.eqz @@ -54777,10 +54213,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -54794,12 +54230,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -54828,8 +54262,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -54848,11 +54280,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -54893,19 +54325,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Float32Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Float32Array#__get f32.eq i32.eqz @@ -54917,10 +54347,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -54934,12 +54364,10 @@ (local $length i32) (local $array i32) (local $i i32) - (local $4 i32) (local $buffer i32) (local $result i32) - (local $i|7 i32) - (local $8 i32) - (local $9 i32) + (local $i|6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -54968,8 +54396,6 @@ local.get $i local.get $length i32.lt_s - local.set $4 - local.get $4 if local.get $array local.get $i @@ -54988,11 +54414,11 @@ global.get $~lib/memory/__stack_pointer local.get $array call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store $0 offset=8 - local.get $9 + local.get $7 local.get $array call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $array @@ -55035,19 +54461,17 @@ local.tee $result i32.store $0 offset=16 i32.const 0 - local.set $i|7 + local.set $i|6 loop $for-loop|1 - local.get $i|7 + local.get $i|6 local.get $length i32.lt_s - local.set $8 - local.get $8 if local.get $array - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Float64Array#__get local.get $result - local.get $i|7 + local.get $i|6 call $~lib/typedarray/Float64Array#__get f64.eq i32.eqz @@ -55059,10 +54483,10 @@ call $~lib/builtins/abort unreachable end - local.get $i|7 + local.get $i|6 i32.const 1 i32.add - local.set $i|7 + local.set $i|6 br $for-loop|1 end end @@ -55074,10 +54498,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i32) (local $valb i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -55108,8 +54531,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -55124,11 +54545,11 @@ i32.ne if i32.const 10320 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -55371,10 +54792,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i32) (local $valb i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -55405,8 +54825,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -55421,11 +54839,11 @@ i32.ne if i32.const 10528 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -55668,10 +55086,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i32) (local $valb i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -55702,8 +55119,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -55718,11 +55133,11 @@ i32.ne if i32.const 10736 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -55965,10 +55380,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i32) (local $valb i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -55999,8 +55413,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -56015,11 +55427,11 @@ i32.ne if i32.const 10976 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -56262,10 +55674,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i32) (local $valb i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -56296,8 +55707,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -56312,11 +55721,11 @@ i32.ne if i32.const 11264 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -56559,10 +55968,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i32) (local $valb i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -56593,8 +56001,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -56609,11 +56015,11 @@ i32.ne if i32.const 11568 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -56856,10 +56262,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i32) (local $valb i32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -56890,8 +56295,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -56906,11 +56309,11 @@ i32.ne if i32.const 11936 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -57153,10 +56556,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i64) (local $valb i64) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57187,8 +56589,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -57203,11 +56603,11 @@ i64.ne if i32.const 12352 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -57450,10 +56850,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala i64) (local $valb i64) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57484,8 +56883,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -57500,11 +56897,11 @@ i64.ne if i32.const 12960 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -57747,10 +57144,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala f32) (local $valb f32) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57781,8 +57177,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -57797,11 +57191,11 @@ f32.ne if i32.const 13520 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -58021,10 +57415,9 @@ (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (type $i32_i32_=>_none) (param $target i32) (param $compare i32) (local $len i32) (local $i i32) - (local $4 i32) (local $vala f64) (local $valb f64) - (local $7 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58055,8 +57448,6 @@ local.get $i local.get $len i32.lt_s - local.set $4 - local.get $4 if local.get $target local.get $i @@ -58071,11 +57462,11 @@ f64.ne if i32.const 13872 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store $0 - local.get $7 + local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -60411,8 +59802,10 @@ local.get $3 i32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#fill@varargs drop local.get $3 i32.const 5 @@ -60465,8 +59858,10 @@ local.get $3 i32.const 2 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#fill@varargs drop local.get $3 i32.const 5 @@ -60526,8 +59921,10 @@ local.get $14 i32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int8Array#fill@varargs drop local.get $14 call $~lib/typedarray/Int8Array#get:length @@ -60666,8 +60063,10 @@ local.get $19 i32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs drop local.get $19 i32.const 5 @@ -60720,8 +60119,10 @@ local.get $19 i32.const 2 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs drop local.get $19 i32.const 5 @@ -60781,8 +60182,10 @@ local.get $30 i32.const 0 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs drop local.get $30 call $~lib/typedarray/Int32Array#get:length @@ -61108,15 +60511,19 @@ global.get $~lib/memory/__stack_pointer local.get $39 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $40 i32.store $0 offset=52 local.get $39 i32.const 0 i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#copyWithin@varargs local.set $100 global.get $~lib/memory/__stack_pointer local.get $100 @@ -61145,15 +60552,19 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 i32.const 1 i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#copyWithin@varargs local.set $100 global.get $~lib/memory/__stack_pointer local.get $100 @@ -61182,15 +60593,19 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 i32.const 1 i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#copyWithin@varargs local.set $100 global.get $~lib/memory/__stack_pointer local.get $100 @@ -61219,15 +60634,19 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 i32.const 2 i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#copyWithin@varargs local.set $100 global.get $~lib/memory/__stack_pointer local.get $100 @@ -61256,8 +60675,10 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 @@ -61293,8 +60714,10 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 @@ -61330,8 +60753,10 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 @@ -61367,15 +60792,19 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 i32.const 0 i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#copyWithin@varargs local.set $100 global.get $~lib/memory/__stack_pointer local.get $100 @@ -61404,8 +60833,10 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 @@ -61441,8 +60872,10 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 @@ -61478,8 +60911,10 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 @@ -61515,15 +60950,19 @@ global.get $~lib/memory/__stack_pointer local.get $40 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $39 i32.store $0 offset=48 local.get $39 i32.const -4 i32.const -3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#copyWithin + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#copyWithin@varargs local.set $100 global.get $~lib/memory/__stack_pointer local.get $100 @@ -61758,8 +61197,10 @@ global.get $~lib/memory/__stack_pointer local.get $65 i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/typedarray/Int32Array#slice@varargs local.tee $69 i32.store $0 offset=76 local.get $69 @@ -62772,112 +62213,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Int32Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Int32Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 2 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 2 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 2 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 2 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Float64Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -62905,112 +62350,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Float64Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Float64Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 3 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 3 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 3 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 3 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Float64Array#sort@varargs (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) (local $2 i32) @@ -63107,6 +62556,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 + return ) (func $~lib/typedarray/Int8Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -63134,112 +62584,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Int8Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Int8Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 0 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 0 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 0 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 0 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Int32Array#slice (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -63266,101 +62720,105 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $start - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Int32Array#get:length - local.set $len - local.get $start - i32.const 0 - i32.lt_s - if (result i32) + block $~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $start + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Int32Array#get:length + local.set $len local.get $start - local.get $len - i32.add - local.tee $7 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $start - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $start - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) + if (result i32) + local.get $start + local.get $len + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $start + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $start local.get $end|5 - local.get $len - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $end|5 + local.get $len + i32.add + local.tee $11 + i32.const 0 + local.tee $12 + local.get $11 + local.get $12 + i32.gt_s + select + else + local.get $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.get $start + i32.sub + local.tee $15 + i32.const 0 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else - local.get $end|5 - local.tee $13 + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + call $~lib/typedarray/Int32Array#constructor + local.tee $slice + i32.store $0 + local.get $slice + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $start + i32.const 2 + i32.shl + i32.add + local.get $len + i32.const 2 + i32.shl + memory.copy $0 $0 + local.get $slice + br $~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.get $start - i32.sub - local.tee $15 - i32.const 0 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $len - call $~lib/typedarray/Int32Array#constructor - local.tee $slice - i32.store $0 - local.get $slice - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $start - i32.const 2 - i32.shl - i32.add - local.get $len - i32.const 2 - i32.shl - memory.copy $0 $0 - local.get $slice local.set $18 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $18 + return ) (func $~lib/typedarray/Int8Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -63372,7 +62830,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -63381,87 +62838,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Int8Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 0 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Int8Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store8 $0 + i32.const 0 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Uint8Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -63473,7 +62932,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -63482,87 +62940,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint8Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 0 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint8Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store8 $0 + i32.const 0 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Uint8ClampedArray#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -63574,7 +63034,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -63583,87 +63042,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 0 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store8 $0 + i32.const 0 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store8 $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Int16Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -63675,7 +63136,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -63684,87 +63144,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Int16Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 1 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Int16Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store16 $0 + i32.const 1 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store16 $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Uint16Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -63776,7 +63238,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -63785,87 +63246,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint16Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 1 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint16Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store16 $0 + i32.const 1 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store16 $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Int32Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -63877,7 +63340,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -63886,87 +63348,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Int32Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 2 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Int32Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store $0 + i32.const 2 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Uint32Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -63978,7 +63442,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -63987,87 +63450,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint32Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 2 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint32Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store $0 + i32.const 2 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Int64Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64079,7 +63544,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -64088,87 +63552,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Int64Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 3 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Int64Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i64) - i64.store $0 + i32.const 3 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i64_i32_i32_=>_i64) + i64.store $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Uint64Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64180,7 +63646,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -64189,87 +63654,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint64Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 3 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint64Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i64) - i64.store $0 + i32.const 3 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i64_i32_i32_=>_i64) + i64.store $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Float32Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64281,7 +63748,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -64290,87 +63756,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Float32Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 2 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Float32Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_f32) - f32.store $0 + i32.const 2 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $f32_i32_i32_=>_f32) + f32.store $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Float64Array#map (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64382,7 +63850,6 @@ (local $buf i32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -64391,87 +63858,89 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Float64Array#get:length - local.set $len - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - local.get $len - i32.const 3 - i32.shl - local.set $byteLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Float64Array#get:length + local.set $len + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $buf - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load $0 - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_f64) - f64.store $0 + i32.const 3 + i32.shl + local.set $byteLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer + local.get $byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $len + i32.lt_s + if + local.get $buf + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $f64_i32_i32_=>_f64) + f64.store $0 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $buf + i32.store $0 offset=4 + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0 end - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $buf - i32.store $0 offset=4 - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/typedarray/Int8Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64482,12 +63951,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i32) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -64496,105 +63964,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Int8Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 0 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Int8Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s $0 - local.set $value - local.get $value + i32.const 0 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 0 i32.shl i32.add - local.get $value - i32.store8 $0 + i32.load8_s $0 + local.set $value + local.get $value + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 0 + i32.shl + i32.add + local.get $value + i32.store8 $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 0 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0 end - local.get $j - i32.const 0 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Uint8Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64605,12 +64075,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i32) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -64619,105 +64088,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint8Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 0 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint8Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u $0 - local.set $value - local.get $value + i32.const 0 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 0 i32.shl i32.add + i32.load8_u $0 + local.set $value local.get $value - i32.store8 $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 0 + i32.shl + i32.add + local.get $value + i32.store8 $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 0 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0 end - local.get $j - i32.const 0 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Uint8ClampedArray#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64728,12 +64199,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i32) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -64742,105 +64212,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 0 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u $0 - local.set $value - local.get $value + i32.const 0 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 0 i32.shl i32.add + i32.load8_u $0 + local.set $value local.get $value - i32.store8 $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 0 + i32.shl + i32.add + local.get $value + i32.store8 $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 0 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end - local.get $j - i32.const 0 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Int16Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64851,12 +64323,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i32) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -64865,105 +64336,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Int16Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Int16Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - local.set $value - local.get $value + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 1 i32.shl i32.add + i32.load16_s $0 + local.set $value local.get $value - i32.store16 $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 1 + i32.shl + i32.add + local.get $value + i32.store16 $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 1 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0 end - local.get $j - i32.const 1 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Uint16Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -64974,119 +64447,120 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i32) - (local $12 i32) - (local $byteLength i32) - (local $data i32) - (local $15 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint16Array#get:length - local.set $len + (local $11 i32) + (local $byteLength i32) + (local $data i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 i32.const 8 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + i64.const 0 + i64.store $0 + block $~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint16Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u $0 - local.set $value - local.get $value + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 1 i32.shl i32.add + i32.load16_u $0 + local.set $value local.get $value - i32.store16 $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 1 + i32.shl + i32.add + local.get $value + i32.store16 $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 1 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0 end - local.get $j - i32.const 1 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Int32Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -65097,12 +64571,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i32) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -65111,105 +64584,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Int32Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 2 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Int32Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $value - local.get $value + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 2 i32.shl i32.add + i32.load $0 + local.set $value local.get $value - i32.store $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 2 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0 end - local.get $j - i32.const 2 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Uint32Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -65220,12 +64695,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i32) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -65234,105 +64708,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint32Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 2 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint32Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $value - local.get $value + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 2 i32.shl i32.add + i32.load $0 + local.set $value local.get $value - i32.store $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 2 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0 end - local.get $j - i32.const 2 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Int64Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -65343,12 +64819,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i64) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -65357,105 +64832,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Int64Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 3 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Int64Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.set $value - local.get $value - local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.const 3 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 3 i32.shl i32.add + i64.load $0 + local.set $value local.get $value - i64.store $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 3 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0 end - local.get $j - i32.const 3 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Uint64Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -65466,12 +64943,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value i64) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -65480,105 +64956,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Uint64Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 3 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Uint64Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load $0 - local.set $value - local.get $value + i32.const 3 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 3 i32.shl i32.add + i64.load $0 + local.set $value local.get $value - i64.store $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 3 + i32.shl + i32.add + local.get $value + i64.store $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 3 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0 end - local.get $j - i32.const 3 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Float32Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -65589,12 +65067,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value f32) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -65603,105 +65080,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Float32Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 2 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Float32Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load $0 - local.set $value - local.get $value + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 2 i32.shl i32.add + f32.load $0 + local.set $value local.get $value - f32.store $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $f32_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $value + f32.store $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end + local.get $j + i32.const 2 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0 end - local.get $j - i32.const 2 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Float64Array#filter (type $i32_i32_=>_i32) (param $this i32) (param $fn i32) (result i32) (local $array i32) @@ -65712,12 +65191,11 @@ (local $dataStart i32) (local $j i32) (local $i i32) - (local $10 i32) (local $value f64) - (local $12 i32) + (local $11 i32) (local $byteLength i32) (local $data i32) - (local $15 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -65726,105 +65204,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store $0 - local.get $this - local.set $array - local.get $fn - local.set $fn|3 - local.get $array - call $~lib/typedarray/Float64Array#get:length - local.set $len - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 3 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $buf - i32.store $0 offset=4 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $dataStart - i32.const 0 - local.set $j - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i + block $~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $fn + local.set $fn|3 + local.get $array + call $~lib/typedarray/Float64Array#get:length + local.set $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + global.get $~lib/memory/__stack_pointer local.get $len - i32.lt_s - local.set $10 - local.get $10 - if - local.get $dataStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load $0 - local.set $value - local.get $value + i32.const 3 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $buf + i32.store $0 offset=4 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $dataStart + i32.const 0 + local.set $j + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - local.get $array - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) + local.get $len + i32.lt_s if - local.get $buf - local.get $j - local.tee $12 - i32.const 1 - i32.add - local.set $j - local.get $12 + local.get $dataStart + local.get $i i32.const 3 i32.shl i32.add + f64.load $0 + local.set $value local.get $value - f64.store $0 + local.get $i + local.get $array + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load $0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + if + local.get $buf + local.get $j + local.tee $11 + i32.const 1 + i32.add + local.set $j + local.get $11 + i32.const 3 + i32.shl + i32.add + local.get $value + f64.store $0 + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end - end - local.get $j - i32.const 3 - i32.shl - local.set $byteLength - local.get $buf - local.get $byteLength - call $~lib/rt/itcms/__renew - local.set $data - local.get $out - local.get $data - i32.store $0 - local.get $out - local.get $data - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $data - i32.store $0 offset=4 - local.get $out - local.set $15 + local.get $j + i32.const 3 + i32.shl + local.set $byteLength + local.get $buf + local.get $byteLength + call $~lib/rt/itcms/__renew + local.set $data + local.get $out + local.get $data + i32.store $0 + local.get $out + local.get $data + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $data + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $14 + return ) (func $~lib/typedarray/Uint8Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -65852,112 +65332,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Uint8Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Uint8Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 0 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 0 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 0 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 0 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Uint8ClampedArray#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $array i32) @@ -65985,112 +65469,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $start - local.set $begin - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $len - local.get $begin - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $start + local.set $begin + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $len local.get $begin - i32.add - local.tee $7 i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $begin - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $begin + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin + i32.const 0 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin + i32.sub + i32.const 0 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin - i32.const 0 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin - i32.sub - i32.const 0 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Int16Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -66118,112 +65606,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Int16Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Int16Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 1 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 1 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 1 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 1 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Uint16Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -66251,112 +65743,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Uint16Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Uint16Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 + local.get $end|5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 local.get $end|5 - i32.add - local.tee $11 - i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 1 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 1 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 1 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 1 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Uint32Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -66384,112 +65880,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Uint32Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Uint32Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 2 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 2 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 2 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 2 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Int64Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -66517,112 +66017,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Int64Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Int64Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 3 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 3 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 3 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 3 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Uint64Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -66650,112 +66154,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Uint64Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Uint64Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 3 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 3 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 3 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 3 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/typedarray/Float32Array#subarray (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $array i32) @@ -66783,112 +66291,116 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $this - local.set $array - local.get $begin - local.set $begin|4 - local.get $end - local.set $end|5 - local.get $array - call $~lib/typedarray/Float32Array#get:length - local.set $len - local.get $begin|4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $this + local.set $array + local.get $begin + local.set $begin|4 + local.get $end + local.set $end|5 + local.get $array + call $~lib/typedarray/Float32Array#get:length + local.set $len local.get $begin|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 $begin|4 - local.tee $9 - local.get $len - local.tee $10 - local.get $9 - local.get $10 i32.lt_s - select - end - local.set $begin|4 - local.get $end|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $len + if (result i32) + local.get $len + local.get $begin|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 $begin|4 + local.tee $9 + local.get $len + local.tee $10 + local.get $9 + local.get $10 + i32.lt_s + select + end + local.set $begin|4 local.get $end|5 - i32.add - local.tee $11 i32.const 0 - local.tee $12 - local.get $11 - local.get $12 + i32.lt_s + if (result i32) + local.get $len + local.get $end|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 $end|5 + local.tee $13 + local.get $len + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + end + local.set $end|5 + local.get $end|5 + local.tee $15 + local.get $begin|4 + local.tee $16 + local.get $15 + local.get $16 i32.gt_s select - else + local.set $end|5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $buf + local.get $out + local.get $buf + i32.store $0 + local.get $out + local.get $buf + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out + local.get $array + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $begin|4 + i32.const 2 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $out local.get $end|5 - local.tee $13 - local.get $len - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select + local.get $begin|4 + i32.sub + i32.const 2 + i32.shl + i32.store $0 offset=8 + local.get $out + br $~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0 end - local.set $end|5 - local.get $end|5 - local.tee $15 - local.get $begin|4 - local.tee $16 - local.get $15 - local.get $16 - i32.gt_s - select - local.set $end|5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $buf - local.get $out - local.get $buf - i32.store $0 - local.get $out - local.get $buf - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $array - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $begin|4 - i32.const 2 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $out - local.get $end|5 - local.get $begin|4 - i32.sub - i32.const 2 - i32.shl - i32.store $0 offset=8 - local.get $out local.set $19 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $19 + return ) (func $~lib/util/number/itoa32 (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) (local $sign i32) @@ -67070,6 +66582,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/string/String#substring (type $i32_i32_i32_=>_i32) (param $this i32) (param $start i32) (param $end i32) (result i32) (local $len i32) @@ -67213,6 +66726,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $22 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -67224,7 +66738,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -67242,12 +66755,12 @@ i32.lt_s if i32.const 6752 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -67265,12 +66778,12 @@ local.get $value i32.const 10 call $~lib/util/number/itoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -67300,8 +66813,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -67369,21 +66880,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/number/utoa32 (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) (local $out i32) @@ -67530,6 +67042,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $12 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -67541,7 +67054,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -67559,12 +67071,12 @@ i32.lt_s if i32.const 6752 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -67582,12 +67094,12 @@ local.get $value i32.const 10 call $~lib/util/number/utoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -67617,8 +67129,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -67686,21 +67196,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -67712,7 +67223,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -67730,12 +67240,12 @@ i32.lt_s if i32.const 6752 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -67753,12 +67263,12 @@ local.get $value i32.const 10 call $~lib/util/number/itoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -67788,8 +67298,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -67857,21 +67365,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -67883,7 +67392,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -67901,12 +67409,12 @@ i32.lt_s if i32.const 6752 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -67924,12 +67432,12 @@ local.get $value i32.const 10 call $~lib/util/number/utoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -67959,8 +67467,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -68028,21 +67534,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -68054,7 +67561,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -68072,12 +67578,12 @@ i32.lt_s if i32.const 6752 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -68095,12 +67601,12 @@ local.get $value i32.const 10 call $~lib/util/number/itoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -68130,8 +67636,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -68199,21 +67703,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -68225,7 +67730,6 @@ (local $value|9 i32) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -68243,12 +67747,12 @@ i32.lt_s if i32.const 6752 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -68266,12 +67770,12 @@ local.get $value i32.const 10 call $~lib/util/number/utoa32 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -68301,8 +67805,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -68370,21 +67872,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/number/itoa64 (type $i64_i32_=>_i32) (param $value i64) (param $radix i32) (result i32) (local $sign i32) @@ -68608,6 +68111,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $18 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -68619,7 +68123,6 @@ (local $value|9 i64) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -68637,12 +68140,12 @@ i32.lt_s if i32.const 6752 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -68662,12 +68165,12 @@ i64.extend_i32_s i32.const 10 call $~lib/util/number/itoa64 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -68697,8 +68200,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -68766,21 +68267,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/number/utoa64 (type $i64_i32_=>_i32) (param $value i64) (param $radix i32) (result i32) (local $out i32) @@ -68967,6 +68469,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $17 + return ) (func $~lib/util/string/joinIntegerArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -68978,7 +68481,6 @@ (local $value|9 i64) (local $i i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -68996,12 +68498,12 @@ i32.lt_s if i32.const 6752 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $lastIndex @@ -69019,12 +68521,12 @@ local.get $value i32.const 10 call $~lib/util/number/utoa64 - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $separator @@ -69054,8 +68556,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $11 - local.get $11 if local.get $dataStart local.get $i @@ -69123,21 +68623,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 return end local.get $result - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 + return ) (func $~lib/util/number/dtoa (type $f64_=>_i32) (param $value f64) (result i32) (local $size i32) @@ -69221,6 +68722,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/util/string/joinFloatArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -69231,7 +68733,6 @@ (local $value f32) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -69249,12 +68750,12 @@ i32.lt_s if i32.const 6752 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $lastIndex @@ -69264,12 +68765,12 @@ f32.load $0 f64.promote_f32 call $~lib/util/number/dtoa - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $separator @@ -69299,8 +68800,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $10 - local.get $10 if local.get $dataStart local.get $i @@ -69370,21 +68869,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $result - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/util/string/joinFloatArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -69395,7 +68895,6 @@ (local $value f64) (local $i i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -69413,12 +68912,12 @@ i32.lt_s if i32.const 6752 - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $lastIndex @@ -69427,12 +68926,12 @@ local.get $dataStart f64.load $0 call $~lib/util/number/dtoa - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $separator @@ -69462,8 +68961,6 @@ local.get $i local.get $lastIndex i32.lt_s - local.set $10 - local.get $10 if local.get $dataStart local.get $i @@ -69531,21 +69028,22 @@ i32.const 0 local.get $offset call $~lib/string/String#substring - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 return end local.get $result - local.set $11 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $10 + return ) (func $~lib/arraybuffer/ArrayBuffer#constructor (type $i32_i32_=>_i32) (param $this i32) (param $length i32) (result i32) (local $buffer i32) @@ -69586,6 +69084,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $~lib/typedarray/Uint8Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -69603,108 +69102,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 0 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 0 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 0 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 i32.const 0 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/arraybuffer/ArrayBuffer#slice (type $i32_i32_i32_=>_i32) (param $this i32) (param $begin i32) (param $end i32) (result i32) (local $length i32) @@ -69812,6 +69315,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $16 + return ) (func $~lib/typedarray/Int8Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -69829,108 +69333,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 0 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 0 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 0 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 i32.const 0 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Uint8ClampedArray.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -69948,108 +69456,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 0 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 0 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 0 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 0 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 0 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 i32.const 0 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Int16Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -70067,108 +69579,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 1 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 1 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 1 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 1 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 1 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len - i32.const 1 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Uint16Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -70186,108 +69702,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 1 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 1 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 1 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 1 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 1 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len - i32.const 1 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Int32Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -70305,108 +69825,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 3 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 3 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 3 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 2 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len - i32.const 2 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Uint32Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -70424,108 +69948,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 3 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 3 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 3 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 2 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len - i32.const 2 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength - i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 + i32.add + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Int64Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -70543,108 +70071,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 7 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 7 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 7 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 3 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len - i32.const 3 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Uint64Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -70662,108 +70194,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 7 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 7 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 7 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 3 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len - i32.const 3 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Float32Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -70781,108 +70317,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 3 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 3 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 3 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 3 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 2 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len - i32.const 2 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Float64Array.wrap (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $byteOffset i32) (param $length i32) (result i32) (local $buffer|3 i32) @@ -70900,108 +70440,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $buffer - local.set $buffer|3 - local.get $byteOffset - local.set $byteOffset|4 - local.get $length - local.set $len - local.get $buffer|3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $bufferByteLength - local.get $byteOffset|4 - local.get $bufferByteLength - i32.gt_u - local.get $byteOffset|4 - i32.const 7 - i32.and - i32.or - if - i32.const 336 - i32.const 608 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $len - i32.const 0 - i32.lt_s - if + block $~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $buffer + local.set $buffer|3 + local.get $byteOffset + local.set $byteOffset|4 + local.get $length + local.set $len + local.get $buffer|3 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $bufferByteLength + local.get $byteOffset|4 + local.get $bufferByteLength + i32.gt_u + local.get $byteOffset|4 + i32.const 7 + i32.and + i32.or + if + i32.const 336 + i32.const 608 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $len - i32.const -1 - i32.eq + i32.const 0 + i32.lt_s if - local.get $bufferByteLength - i32.const 7 - i32.and + local.get $len + i32.const -1 + i32.eq if + local.get $bufferByteLength + i32.const 7 + i32.and + if + i32.const 32 + i32.const 608 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $bufferByteLength + local.get $byteOffset|4 + i32.sub + local.set $byteLength + else i32.const 32 i32.const 608 - i32.const 1865 - i32.const 9 + i32.const 1869 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $bufferByteLength - local.get $byteOffset|4 - i32.sub - local.set $byteLength else - i32.const 32 - i32.const 608 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $len + i32.const 3 + i32.shl + local.set $byteLength + local.get $byteOffset|4 + local.get $byteLength + i32.add + local.get $bufferByteLength + i32.gt_s + if + i32.const 32 + i32.const 608 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - else - local.get $len - i32.const 3 - i32.shl - local.set $byteLength - local.get $byteOffset|4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $out + i32.store $0 + local.get $out + local.get $buffer|3 + i32.store $0 + local.get $out + local.get $buffer|3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $out local.get $byteLength + i32.store $0 offset=8 + local.get $out + local.get $buffer|3 + local.get $byteOffset|4 i32.add - local.get $bufferByteLength - i32.gt_s - if - i32.const 32 - i32.const 608 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.store $0 offset=4 + local.get $out + br $~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $out - i32.store $0 - local.get $out - local.get $buffer|3 - i32.store $0 - local.get $out - local.get $buffer|3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $out - local.get $byteLength - i32.store $0 offset=8 - local.get $out - local.get $buffer|3 - local.get $byteOffset|4 - i32.add - i32.store $0 offset=4 - local.get $out local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $9 + return ) (func $~lib/typedarray/Int8Array#sort@varargs (type $i32_i32_=>_i32) (param $this i32) (param $comparator i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 10893113a1..e863cc08af 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -3935,6 +3935,49 @@ end i32.const 1 ) + (func $~lib/typedarray/Int32Array#fill@varargs (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 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 $2 + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/typedarray/Int32Array#fill + ) + (func $~lib/typedarray/Int32Array#slice@varargs (type $i32_=>_i32) (param $0 i32) (result i32) + (local $1 i32) + block $2of2 + block $1of2 + block $outOfRange + global.get $~argumentsLength + br_table $1of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $1 + end + local.get $0 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#slice + ) (func $~lib/typedarray/Int32Array#copyWithin (type $i32_i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) @@ -4040,6 +4083,27 @@ memory.copy $0 $0 local.get $0 ) + (func $~lib/typedarray/Int32Array#copyWithin@varargs (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $3 + end + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/typedarray/Int32Array#copyWithin + ) (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (type $i32_i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 @@ -22469,7 +22533,7 @@ (local $6 i32) local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $5 local.get $0 i32.load $0 offset=8 local.set $0 @@ -22495,7 +22559,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -22507,10 +22571,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $2 + local.get $6 i32.eqz if - local.get $3 + local.get $5 i32.load8_s $0 call $~lib/util/number/itoa32 local.set $0 @@ -22528,26 +22592,24 @@ local.tee $4 i32.const 11 i32.add - local.get $2 + local.get $6 i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -22556,13 +22618,13 @@ i32.add i32.load8_s $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -22571,36 +22633,36 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $3 + local.get $5 + local.get $6 i32.add i32.load8_s $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -22613,8 +22675,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 ) @@ -22783,7 +22843,7 @@ (local $6 i32) local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $5 local.get $0 i32.load $0 offset=8 local.set $0 @@ -22809,7 +22869,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -22821,10 +22881,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $2 + local.get $6 i32.eqz if - local.get $3 + local.get $5 i32.load8_u $0 call $~lib/util/number/utoa32 local.set $0 @@ -22842,26 +22902,24 @@ local.tee $4 i32.const 10 i32.add - local.get $2 + local.get $6 i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -22870,13 +22928,13 @@ i32.add i32.load8_u $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -22885,36 +22943,36 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $3 + local.get $5 + local.get $6 i32.add i32.load8_u $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -22927,8 +22985,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 ) @@ -23052,7 +23108,7 @@ (local $6 i32) local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $5 local.get $0 i32.load $0 offset=8 i32.const 1 @@ -23080,7 +23136,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -23092,10 +23148,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $2 + local.get $6 i32.eqz if - local.get $3 + local.get $5 i32.load16_s $0 call $~lib/util/number/itoa32 local.set $0 @@ -23113,43 +23169,41 @@ local.tee $4 i32.const 11 i32.add - local.get $2 + local.get $6 i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 local.get $5 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_s $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -23158,38 +23212,38 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $2 + local.get $5 + local.get $6 i32.const 1 i32.shl i32.add i32.load16_s $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -23202,8 +23256,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 ) @@ -23265,7 +23317,7 @@ (local $6 i32) local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $5 local.get $0 i32.load $0 offset=8 i32.const 1 @@ -23293,7 +23345,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -23305,10 +23357,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $2 + local.get $6 i32.eqz if - local.get $3 + local.get $5 i32.load16_u $0 call $~lib/util/number/utoa32 local.set $0 @@ -23326,43 +23378,41 @@ local.tee $4 i32.const 10 i32.add - local.get $2 + local.get $6 i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 local.get $5 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_u $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -23371,38 +23421,38 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $2 + local.get $5 + local.get $6 i32.const 1 i32.shl i32.add i32.load16_u $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -23415,8 +23465,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 ) @@ -23518,7 +23566,7 @@ (local $6 i32) local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $5 local.get $0 i32.load $0 offset=8 i32.const 2 @@ -23546,7 +23594,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -23558,10 +23606,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $2 + local.get $6 i32.eqz if - local.get $3 + local.get $5 i32.load $0 call $~lib/util/number/itoa32 local.set $0 @@ -23579,43 +23627,41 @@ local.tee $4 i32.const 11 i32.add - local.get $2 + local.get $6 i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 local.get $5 + local.get $3 i32.const 2 i32.shl i32.add i32.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -23624,38 +23670,38 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $2 + local.get $5 + local.get $6 i32.const 2 i32.shl i32.add i32.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -23668,8 +23714,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 ) @@ -23747,7 +23791,7 @@ (local $6 i32) local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $5 local.get $0 i32.load $0 offset=8 i32.const 2 @@ -23775,7 +23819,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -23787,10 +23831,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $2 + local.get $6 i32.eqz if - local.get $3 + local.get $5 i32.load $0 call $~lib/util/number/utoa32 local.set $0 @@ -23808,43 +23852,41 @@ local.tee $4 i32.const 10 i32.add - local.get $2 + local.get $6 i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 local.get $5 + local.get $3 i32.const 2 i32.shl i32.add i32.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -23853,38 +23895,38 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $2 + local.get $5 + local.get $6 i32.const 2 i32.shl i32.add i32.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -23897,8 +23939,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 ) @@ -24227,7 +24267,7 @@ i32.wrap_i64 i32.const 1 i32.shl - local.tee $1 + local.tee $0 select local.tee $2 i64.const 4294967295 @@ -24285,11 +24325,11 @@ local.tee $4 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store $0 local.get $0 local.get $1 @@ -24352,11 +24392,11 @@ local.tee $3 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store $0 local.get $0 local.get $1 @@ -24365,9 +24405,9 @@ local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $1 + local.get $0 if - local.get $0 + local.get $1 i32.const 45 i32.store16 $0 end @@ -24375,7 +24415,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -24401,17 +24441,15 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 local.get $3 local.get $6 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24422,13 +24460,13 @@ i32.add i64.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $7 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24437,10 +24475,10 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $7 i32.add - local.set $0 + local.set $1 end local.get $3 i32.const 1 @@ -24449,8 +24487,8 @@ br $for-loop|0 end end - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -24461,14 +24499,14 @@ i32.add i64.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 local.get $4 i32.lt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -24481,8 +24519,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 return @@ -24628,15 +24664,15 @@ ) (func $~lib/typedarray/Uint64Array#join (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 i64) local.get $0 i32.load $0 offset=4 - local.set $7 + local.set $2 local.get $0 i32.load $0 offset=8 i32.const 3 @@ -24658,7 +24694,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $3 i32.const 0 i32.lt_s if @@ -24670,13 +24706,13 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $6 + local.get $3 i32.eqz if block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $7 + local.get $2 i64.load $0 - local.set $2 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24688,7 +24724,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - local.get $2 + local.get $7 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -24698,60 +24734,60 @@ i32.const 8000 br $__inlined_func$~lib/util/number/utoa64 end - local.get $2 + local.get $7 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.wrap_i64 - local.tee $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 2 @@ -24759,56 +24795,56 @@ local.tee $0 i32.store $0 local.get $0 + local.get $2 local.get $1 - local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $7 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $7 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $2 + local.get $7 i64.const 10000000000 i64.ge_u i32.add else - local.get $2 + local.get $7 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $2 + local.get $7 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $2 + local.get $7 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $7 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $2 + local.get $7 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $2 + local.get $7 i64.const 1000000000000000000 i64.ge_u i32.add @@ -24822,7 +24858,7 @@ local.tee $0 i32.store $0 local.get $0 - local.get $2 + local.get $7 local.get $1 call $~lib/util/number/utoa64_dec_lut end @@ -24844,86 +24880,84 @@ i32.load $0 i32.const 1 i32.shr_u - local.tee $3 + local.tee $6 i32.const 20 i32.add - local.get $6 + local.get $3 i32.mul i32.const 20 i32.add - local.tee $5 + local.tee $4 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $3 + local.get $5 + i32.gt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $7 - local.get $4 + local.get $2 + local.get $5 i32.const 3 i32.shl i32.add i64.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $3 + local.set $1 + local.get $6 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.const 9584 - local.get $3 + local.get $6 i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 - local.get $3 + local.get $1 + local.get $6 i32.add - local.set $0 + local.set $1 end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end - local.get $5 - local.get $1 + local.get $4 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $7 - local.get $6 + local.get $2 + local.get $3 i32.const 3 i32.shl i32.add i64.load $0 call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -24936,8 +24970,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 return @@ -26061,7 +26093,7 @@ (local $6 i32) local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $5 local.get $0 i32.load $0 offset=8 i32.const 2 @@ -26089,7 +26121,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -26101,10 +26133,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end - local.get $2 + local.get $6 i32.eqz if - local.get $3 + local.get $5 f32.load $0 f64.promote_f32 call $~lib/util/number/dtoa @@ -26123,44 +26155,42 @@ local.tee $4 i32.const 28 i32.add - local.get $2 + local.get $6 i32.mul i32.const 28 i32.add - local.tee $6 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 local.get $5 + local.get $3 i32.const 2 i32.shl i32.add f32.load $0 f64.promote_f32 call $~lib/util/number/dtoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -26169,39 +26199,39 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $2 + local.get $5 + local.get $6 i32.const 2 i32.shl i32.add f32.load $0 f64.promote_f32 call $~lib/util/number/dtoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -26214,8 +26244,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 ) @@ -26228,7 +26256,7 @@ (local $6 i32) local.get $0 i32.load $0 offset=4 - local.set $3 + local.set $5 local.get $0 i32.load $0 offset=8 i32.const 3 @@ -26256,7 +26284,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -26268,10 +26296,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end - local.get $2 + local.get $6 i32.eqz if - local.get $3 + local.get $5 f64.load $0 call $~lib/util/number/dtoa local.set $0 @@ -26289,43 +26317,41 @@ local.tee $4 i32.const 28 i32.add - local.get $2 + local.get $6 i32.mul i32.const 28 i32.add - local.tee $6 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store $0 - i32.const 0 - local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 local.get $5 + local.get $3 i32.const 3 i32.shl i32.add f64.load $0 call $~lib/util/number/dtoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $4 if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -26334,38 +26360,38 @@ i32.const 1 i32.shl memory.copy $0 $0 - local.get $0 + local.get $1 local.get $4 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $6 - local.get $1 + local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $2 + local.get $5 + local.get $6 i32.const 3 i32.shl i32.add f64.load $0 call $~lib/util/number/dtoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -26378,8 +26404,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end local.get $0 ) @@ -35189,7 +35213,7 @@ i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 3952 i32.store $0 offset=4 @@ -35212,30 +35236,30 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $5 + local.get $6 i32.add i32.load8_s $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 3952 @@ -35243,9 +35267,9 @@ call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $8 - i32.add local.get $3 + i32.add + local.get $4 i32.store8 $0 local.get $0 i32.const 1 @@ -35259,34 +35283,34 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -35297,7 +35321,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.ne @@ -35309,7 +35333,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -35322,7 +35346,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -35335,7 +35359,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 5 @@ -35413,7 +35437,7 @@ i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 3984 i32.store $0 offset=4 @@ -35436,30 +35460,30 @@ i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $5 + local.get $6 i32.add i32.load8_u $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 3984 @@ -35467,9 +35491,9 @@ call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $8 - i32.add local.get $3 + i32.add + local.get $4 i32.store8 $0 local.get $0 i32.const 1 @@ -35483,34 +35507,34 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -35521,7 +35545,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.ne @@ -35533,7 +35557,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 @@ -35546,7 +35570,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 @@ -35559,7 +35583,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 5 @@ -35637,7 +35661,7 @@ i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4016 i32.store $0 offset=4 @@ -35660,30 +35684,30 @@ i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if local.get $1 - local.get $5 + local.get $6 i32.add i32.load8_u $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4016 @@ -35691,9 +35715,9 @@ call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $8 - i32.add local.get $3 + i32.add + local.get $4 i32.store8 $0 local.get $0 i32.const 1 @@ -35707,34 +35731,34 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -35745,7 +35769,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.ne @@ -35757,7 +35781,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 @@ -35770,7 +35794,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 @@ -35783,7 +35807,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 @@ -35861,7 +35885,7 @@ i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4048 i32.store $0 offset=4 @@ -35886,7 +35910,7 @@ i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -35894,38 +35918,38 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4048 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $8 + local.get $3 local.get $0 i32.const 1 i32.shl i32.add - local.get $3 + local.get $4 i32.store16 $0 local.get $0 i32.const 1 @@ -35939,8 +35963,8 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 i32.const 1 i32.shl @@ -35950,26 +35974,26 @@ i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -35980,7 +36004,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 1 i32.shr_u @@ -35994,7 +36018,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 @@ -36007,7 +36031,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 @@ -36020,7 +36044,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 5 @@ -36098,7 +36122,7 @@ i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4080 i32.store $0 offset=4 @@ -36123,7 +36147,7 @@ i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -36131,38 +36155,38 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4080 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $8 + local.get $3 local.get $0 i32.const 1 i32.shl i32.add - local.get $3 + local.get $4 i32.store16 $0 local.get $0 i32.const 1 @@ -36176,8 +36200,8 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 i32.const 1 i32.shl @@ -36187,26 +36211,26 @@ i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -36217,7 +36241,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 1 i32.shr_u @@ -36231,7 +36255,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 @@ -36244,7 +36268,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 @@ -36257,7 +36281,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 5 @@ -36335,7 +36359,7 @@ i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4112 i32.store $0 offset=4 @@ -36360,7 +36384,7 @@ i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -36368,38 +36392,38 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4112 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $8 + local.get $3 local.get $0 i32.const 2 i32.shl i32.add - local.get $3 + local.get $4 i32.store $0 local.get $0 i32.const 1 @@ -36413,8 +36437,8 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -36424,26 +36448,26 @@ i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -36454,7 +36478,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 2 i32.shr_u @@ -36468,7 +36492,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -36481,7 +36505,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 @@ -36494,7 +36518,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -36572,7 +36596,7 @@ i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4144 i32.store $0 offset=4 @@ -36597,7 +36621,7 @@ i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -36605,38 +36629,38 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4144 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $8 + local.get $3 local.get $0 i32.const 2 i32.shl i32.add - local.get $3 + local.get $4 i32.store $0 local.get $0 i32.const 1 @@ -36650,8 +36674,8 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -36661,26 +36685,26 @@ i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -36691,7 +36715,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 2 i32.shr_u @@ -36705,7 +36729,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 @@ -36718,7 +36742,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 @@ -36731,7 +36755,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -36761,8 +36785,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -36809,7 +36833,7 @@ i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4176 i32.store $0 offset=4 @@ -36822,7 +36846,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store $0 local.get $7 @@ -36830,11 +36854,11 @@ i32.const 3 i32.shr_u local.set $2 - local.get $5 + local.get $3 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -36842,38 +36866,38 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 3 i32.shl i32.add i64.load $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4176 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $8 + local.get $3 local.get $0 i32.const 3 i32.shl i32.add - local.get $3 + local.get $4 i64.store $0 local.get $0 i32.const 1 @@ -36887,8 +36911,8 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -36898,26 +36922,26 @@ i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -36928,7 +36952,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.shr_u @@ -36942,7 +36966,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -36955,7 +36979,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 @@ -36968,7 +36992,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 5 @@ -36998,8 +37022,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -37046,7 +37070,7 @@ i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4208 i32.store $0 offset=4 @@ -37059,7 +37083,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store $0 local.get $7 @@ -37067,11 +37091,11 @@ i32.const 3 i32.shr_u local.set $2 - local.get $5 + local.get $3 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -37079,38 +37103,38 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 3 i32.shl i32.add i64.load $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4208 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $8 + local.get $3 local.get $0 i32.const 3 i32.shl i32.add - local.get $3 + local.get $4 i64.store $0 local.get $0 i32.const 1 @@ -37124,8 +37148,8 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -37135,26 +37159,26 @@ i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -37165,7 +37189,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.shr_u @@ -37179,7 +37203,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 @@ -37192,7 +37216,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 @@ -37205,7 +37229,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 5 @@ -37235,8 +37259,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) - (local $4 i32) + (local $3 i32) + (local $4 f32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -37283,7 +37307,7 @@ f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4240 i32.store $0 offset=4 @@ -37296,7 +37320,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store $0 local.get $7 @@ -37304,11 +37328,11 @@ i32.const 2 i32.shr_u local.set $2 - local.get $5 + local.get $3 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -37316,38 +37340,38 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 2 i32.shl i32.add f32.load $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4240 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) if - local.get $8 + local.get $3 local.get $0 i32.const 2 i32.shl i32.add - local.get $3 + local.get $4 f32.store $0 local.get $0 i32.const 1 @@ -37361,8 +37385,8 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -37372,26 +37396,26 @@ i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -37402,7 +37426,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 2 i32.shr_u @@ -37416,7 +37440,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -37429,7 +37453,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 @@ -37442,7 +37466,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 5 @@ -37472,8 +37496,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 i32) + (local $3 i32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -37520,7 +37544,7 @@ f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4272 i32.store $0 offset=4 @@ -37533,7 +37557,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store $0 local.get $7 @@ -37541,11 +37565,11 @@ i32.const 3 i32.shr_u local.set $2 - local.get $5 + local.get $3 i32.const 12 i32.const 14 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store $0 global.get $~lib/memory/__stack_pointer local.get $2 @@ -37553,38 +37577,38 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $3 i32.store $0 offset=4 local.get $7 i32.load $0 offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 i32.lt_s if - local.get $5 + local.get $6 local.get $1 i32.const 3 i32.shl i32.add f64.load $0 - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4272 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) if - local.get $8 + local.get $3 local.get $0 i32.const 3 i32.shl i32.add - local.get $3 + local.get $4 f64.store $0 local.get $0 i32.const 1 @@ -37598,8 +37622,8 @@ br $for-loop|0 end end - local.get $6 local.get $8 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -37609,26 +37633,26 @@ i32.store $0 local.get $1 if - local.get $6 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 + local.get $8 local.get $0 i32.store $0 offset=8 - local.get $6 + local.get $8 local.get $1 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $6 + local.get $5 + local.get $8 i32.store $0 offset=8 - local.get $6 + local.get $8 i32.load $0 offset=4 - local.get $6 + local.get $8 i32.load $0 i32.sub if @@ -37639,7 +37663,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.shr_u @@ -37653,7 +37677,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 3 @@ -37666,7 +37690,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 @@ -37679,7 +37703,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -38124,18 +38148,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (type $none_=>_none) - (local $0 i32) + (func $~lib/typedarray/Uint8Array#toString (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -38152,272 +38168,119 @@ global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 7616 i32.store $0 local.get $1 - i32.const 7628 - i32.load $0 - local.tee $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - i32.store $0 offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 + i32.const 9584 + i32.store $0 + local.get $0 + call $~lib/typedarray/Uint8Array#join local.set $0 - local.get $2 - i32.load $0 offset=4 - local.set $4 - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $5 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shr_u - local.set $6 - local.get $5 i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load $0 - local.set $8 - local.get $7 - local.get $4 - local.get $5 - local.get $0 - i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load $0 - i32.store $0 - local.get $7 - local.get $8 - i32.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if local.get $2 local.get $0 - call $~lib/typedarray/Int32Array#__get - i32.const 7616 + i32.load $0 offset=4 + i32.add + i32.load8_s $0 + local.tee $4 + local.get $2 local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get + i32.load $0 offset=4 + i32.add + i32.load8_s $0 + local.tee $5 i32.ne if + global.get $~lib/memory/__stack_pointer + i32.const 11344 + i32.store $0 + i32.const 11344 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace i32.const 0 i32.const 1568 - i32.const 570 - i32.const 5 + i32.const 764 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.set $1 - local.get $3 i32.const 4 - i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=12 - i32.const 0 - local.set $0 - local.get $2 - i32.load $0 offset=4 - local.set $3 - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|01 - local.get $0 - local.get $5 - i32.lt_u - if - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load $0 - local.set $7 - local.get $6 - local.get $3 - local.get $4 - local.get $0 - i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load $0 - i32.store $0 - local.get $6 - local.get $7 - i32.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|01 - end - end - end - local.get $1 - local.get $2 - i32.store $0 offset=16 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 3 - call $~lib/typedarray/Int32Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -38439,268 +38302,362 @@ i32.const 20 memory.fill $0 local.get $1 - i32.const 7616 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 i32.store $0 - local.get $1 - i32.const 7628 - i32.load $0 - local.tee $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 i32.store $0 offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 i32.store $0 offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + local.get $1 i32.const 0 - local.set $0 - local.get $2 - i32.load $0 offset=4 - local.set $4 - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $5 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $6 - local.get $5 - i32.const 1 - i32.sub + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11312 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + block $folding-inner0 + local.get $4 + i32.load $0 offset=8 + i32.const 11100 + i32.load $0 + local.tee $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 3 + i32.add local.set $5 - loop $while-continue|0 + i32.const 11092 + i32.load $0 + local.set $9 + loop $for-loop|0 local.get $0 - local.get $6 - i32.lt_u + local.get $8 + i32.lt_s if - local.get $4 local.get $0 - i32.const 2 - i32.shl - i32.add - local.tee $7 - i32.load $0 - local.set $8 - local.get $7 - local.get $4 local.get $5 + i32.add + local.get $9 local.get $0 - i32.sub i32.const 2 i32.shl i32.add - local.tee $7 - i32.load $0 - i32.store $0 - local.get $7 - local.get $8 - i32.store $0 + f32.load $0 + local.tee $2 + i32.trunc_sat_f32_s + i32.const 0 + local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + select + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|0 + br $for-loop|0 end end - end - i32.const 0 - local.set $0 - loop $for-loop|1 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11392 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - call $~lib/typedarray/Uint32Array#__get - i32.const 7616 - local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.set $1 - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=12 - i32.const 0 - local.set $0 - local.get $2 - i32.load $0 offset=4 - local.set $3 - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if + i32.store $0 offset=16 local.get $4 - i32.const 1 - i32.shr_u - local.set $5 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|01 + local.get $6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11424 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + local.get $4 + i32.load $0 offset=8 + i32.const 11196 + i32.load $0 + local.tee $5 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 2 + i32.add + local.set $6 + i32.const 11188 + i32.load $0 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|06 local.get $0 local.get $5 - i32.lt_u + i32.lt_s if - local.get $3 local.get $0 - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load $0 - local.set $7 local.get $6 - local.get $3 - local.get $4 + i32.add + local.get $8 local.get $0 - i32.sub - i32.const 2 + i32.const 3 i32.shl i32.add - local.tee $6 - i32.load $0 - i32.store $0 - local.get $6 - local.get $7 - i32.store $0 + f64.load $0 + local.tee $3 + i32.trunc_sat_f64_s + i32.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|01 + br $for-loop|06 end end - end - local.get $1 - local.get $2 - i32.store $0 offset=16 - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 8 - i32.ne - if + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 7 - i32.ne - if + i32.const 16 + i32.const 11456 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 16 + i32.const 11488 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 6 - i32.ne + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__get - i32.const 5 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + local.tee $3 + local.get $1 + i32.load $0 offset=12 i32.ne if i32.const 0 i32.const 1568 - i32.const 578 + i32.const 758 i32.const 3 call $~lib/builtins/abort unreachable end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + i32.load $0 offset=4 + i32.add + i32.load8_u $0 + local.tee $4 + local.get $2 + local.get $1 + i32.load $0 offset=4 + i32.add + i32.load8_u $0 + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 11552 + i32.store $0 + i32.const 11552 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> (type $none_=>_none) (local $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -38717,276 +38674,368 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 - i32.const 7616 - i32.store $0 - local.get $2 - i32.const 7628 - i32.load $0 - local.tee $2 + local.get $1 + i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store $0 offset=4 + local.tee $6 + i32.store $0 + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 - i32.store $0 offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $4 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 + i32.store $0 offset=4 + local.get $7 i32.const 0 - local.set $0 - local.get $3 - i32.load $0 offset=4 - local.set $5 - local.get $3 - i32.load $0 offset=8 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $7 i32.const 3 - i32.shr_u - local.tee $6 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store $0 offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 1 - i32.gt_u - if - local.get $6 - i32.const 1 - i32.shr_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|0 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11520 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + block $folding-inner0 + local.get $4 + i32.load $0 offset=8 + i32.const 11100 + i32.load $0 + local.tee $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 3 + i32.add + local.set $5 + i32.const 11092 + i32.load $0 + local.set $9 + loop $for-loop|0 local.get $0 - local.get $7 - i32.lt_u + local.get $8 + i32.lt_s if - local.get $5 local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $8 - i64.load $0 - local.set $1 - local.get $8 local.get $5 - local.get $6 + i32.add + local.get $9 local.get $0 - i32.sub - i32.const 3 + i32.const 2 i32.shl i32.add - local.tee $8 - i64.load $0 - i64.store $0 - local.get $8 - local.get $1 - i64.store $0 + f32.load $0 + local.tee $2 + i32.trunc_sat_f32_u + i32.const 0 + local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + select + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|0 + br $for-loop|0 end end - end - i32.const 0 - local.set $0 - loop $for-loop|1 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11600 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11632 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + local.get $4 + i32.load $0 offset=8 + i32.const 11196 + i32.load $0 + local.tee $5 + i32.const 2 + i32.add i32.lt_s - if - local.get $3 - local.get $0 - call $~lib/typedarray/Int64Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $4 - i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=12 - i32.const 0 - local.set $0 - local.get $3 - i32.load $0 offset=4 - local.set $4 - local.get $3 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 2 + i32.add local.set $6 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|01 + i32.const 11188 + i32.load $0 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|06 local.get $0 - local.get $6 - i32.lt_u + local.get $5 + i32.lt_s if - local.get $4 local.get $0 - i32.const 3 - i32.shl + local.get $6 i32.add - local.tee $7 - i64.load $0 - local.set $1 - local.get $7 - local.get $4 - local.get $5 + local.get $8 local.get $0 - i32.sub i32.const 3 i32.shl i32.add - local.tee $7 - i64.load $0 - i64.store $0 - local.get $7 - local.get $1 - i64.store $0 + f64.load $0 + local.tee $3 + i32.trunc_sat_f64_u + i32.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|01 + br $for-loop|06 end end - end - local.get $2 - local.get $3 - i32.store $0 offset=16 - local.get $3 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.ne - if + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.ne - if + i32.const 64 + i32.const 11664 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 64 + i32.const 11696 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $3 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.ne + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne if i32.const 0 i32.const 1568 - i32.const 578 + i32.const 758 i32.const 3 call $~lib/builtins/abort unreachable end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + i32.load $0 offset=4 + i32.add + i32.load8_u $0 + local.tee $4 + local.get $2 + local.get $1 + i32.load $0 offset=4 + i32.add + i32.load8_u $0 + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 11760 + i32.store $0 + i32.const 11760 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (type $none_=>_none) (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 f32) + (local $2 f64) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -39003,276 +39052,480 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 - i32.const 7616 + local.get $3 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 i32.store $0 - local.get $2 - i32.const 7628 - i32.load $0 - local.tee $2 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.get $4 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $4 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $4 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 i32.store $0 offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $6 i32.store $0 offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $4 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + local.get $6 i32.const 0 - local.set $0 - local.get $3 - i32.load $0 offset=4 - local.set $5 - local.get $3 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $6 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $6 i32.const 1 - i32.gt_u - if - local.get $6 - i32.const 1 - i32.shr_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|0 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $6 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $7 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + block $folding-inner0 + i32.const 11020 + i32.load $0 + local.tee $8 + local.get $7 + i32.load $0 offset=8 + i32.gt_s + br_if $folding-inner0 + local.get $7 + i32.load $0 offset=4 + local.set $9 + i32.const 11012 + i32.load $0 + local.set $10 + loop $for-loop|0 local.get $0 - local.get $7 - i32.lt_u + local.get $8 + i32.lt_s if - local.get $5 local.get $0 - i32.const 3 + local.get $9 + i32.add + i32.const 255 + local.get $10 + local.get $0 + i32.const 2 i32.shl i32.add - local.tee $8 - i64.load $0 - local.set $1 + i32.load $0 + local.tee $3 + i32.sub + i32.const 31 + i32.shr_s + local.get $3 + i32.or + local.get $3 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11728 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + local.get $7 + i32.load $0 offset=8 + i32.const 11100 + i32.load $0 + local.tee $3 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $7 + i32.load $0 offset=4 + i32.const 3 + i32.add + local.set $8 + i32.const 11092 + i32.load $0 + local.set $9 + i32.const 0 + local.set $0 + loop $for-loop|06 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 local.get $8 - local.get $5 - local.get $6 + i32.add + local.get $9 local.get $0 - i32.sub - i32.const 3 + i32.const 2 i32.shl i32.add - local.tee $8 - i64.load $0 - i64.store $0 - local.get $8 + f32.load $0 + local.tee $1 + f32.const 255 + f32.min + f32.const 0 + f32.max + i32.trunc_sat_f32_u + i32.const 0 local.get $1 - i64.store $0 + local.get $1 + f32.sub + f32.const 0 + f32.eq + select + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|0 + br $for-loop|06 end end - end - i32.const 0 - local.set $0 - loop $for-loop|1 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11824 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + i32.store $0 offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $7 + local.get $4 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11856 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + local.get $7 + i32.load $0 offset=8 + i32.const 11196 + i32.load $0 + local.tee $3 + i32.const 2 + i32.add i32.lt_s - if - local.get $3 - local.get $0 - call $~lib/typedarray/Uint64Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub + br_if $folding-inner0 + local.get $7 + i32.load $0 offset=4 + i32.const 2 + i32.add + local.set $4 + i32.const 11188 + i32.load $0 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|013 local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne + local.get $3 + i32.lt_s if + local.get $0 + local.get $4 + i32.add + local.get $8 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.tee $2 + f64.const 255 + f64.min + f64.const 0 + f64.max + i32.trunc_sat_f64_u i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq + select + i32.store8 $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|013 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $4 - i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=12 - i32.const 0 - local.set $0 - local.get $3 - i32.load $0 offset=4 - local.set $4 - local.get $3 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $6 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11888 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $7 local.get $5 - i32.const 1 - i32.sub + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $7 + local.get $6 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store $0 offset=16 + local.get $7 + i32.load $0 offset=8 + i32.const 11276 + i32.load $0 + local.tee $3 + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner0 + local.get $7 + i32.load $0 offset=4 + i32.const 7 + i32.add + local.set $4 + i32.const 11268 + i32.load $0 local.set $5 - loop $while-continue|01 + i32.const 0 + local.set $0 + loop $for-loop|020 local.get $0 - local.get $6 - i32.lt_u + local.get $3 + i32.lt_s if - local.get $4 local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i64.load $0 - local.set $1 - local.get $7 local.get $4 - local.get $5 + i32.add + i32.const 255 local.get $0 - i32.sub - i32.const 3 - i32.shl + local.get $5 i32.add - local.tee $7 - i64.load $0 - i64.store $0 - local.get $7 - local.get $1 - i64.store $0 + i32.load8_s $0 + local.tee $6 + i32.sub + i32.const 31 + i32.shr_s + local.get $6 + i32.or + local.get $6 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|01 + br $for-loop|020 end end - end - local.get $2 - local.get $3 - i32.store $0 offset=16 - local.get $3 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne - if + i32.const 10 i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 64 + i32.const 11920 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $7 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $3 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.ne + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.ne + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne if i32.const 0 i32.const 1568 - i32.const 577 + i32.const 758 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.tee $5 + local.get $0 + i32.load $0 offset=4 + i32.add + i32.load16_s $0 + local.tee $4 + local.get $1 + i32.load $0 offset=4 + local.get $5 + i32.add + i32.load16_s $0 + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12000 + i32.store $0 + i32.const 12000 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> (type $none_=>_none) (local $0 i32) - (local $1 f32) - (local $2 i32) - (local $3 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -39289,276 +39542,380 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 - i32.const 7616 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 i32.store $0 - local.get $2 - i32.const 7628 - i32.load $0 - local.tee $2 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $7 i32.store $0 offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Float32Array#constructor - local.tee $4 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 i32.store $0 offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $4 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + local.get $1 i32.const 0 - local.set $0 - local.get $3 - i32.load $0 offset=4 - local.set $5 - local.get $3 - i32.load $0 offset=8 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 2 - i32.shr_u - local.tee $6 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store $0 offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 i32.const 1 - i32.gt_u - if - local.get $6 + i32.const 65 + i32.const 11952 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 + block $folding-inner0 + i32.const 11100 + i32.load $0 + local.tee $8 + i32.const 3 + i32.add + local.get $4 + i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|0 + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 6 + i32.add + local.set $5 + i32.const 11092 + i32.load $0 + local.set $9 + loop $for-loop|0 local.get $0 - local.get $7 - i32.lt_u + local.get $8 + i32.lt_s if local.get $5 local.get $0 - i32.const 2 + i32.const 1 i32.shl i32.add - local.tee $8 - f32.load $0 - local.set $1 - local.get $8 - local.get $5 - local.get $6 + local.get $9 local.get $0 - i32.sub i32.const 2 i32.shl i32.add - local.tee $8 f32.load $0 - f32.store $0 - local.get $8 - local.get $1 - f32.store $0 + local.tee $2 + i32.trunc_sat_f32_s + i32.const 0 + local.get $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + select + i32.store16 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|0 + br $for-loop|0 end end - end - i32.const 0 - local.set $0 - loop $for-loop|1 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12048 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - call $~lib/typedarray/Float32Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $4 - i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=12 - i32.const 0 - local.set $0 - local.get $3 - i32.load $0 offset=4 - local.set $4 - local.get $3 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + local.get $6 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12096 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store $0 offset=16 + i32.const 11196 + i32.load $0 + local.tee $5 + i32.const 2 + i32.add + local.get $4 + i32.load $0 offset=8 i32.const 1 i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $4 + i32.load $0 offset=4 + i32.const 4 + i32.add local.set $6 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|01 + i32.const 11188 + i32.load $0 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|06 local.get $0 - local.get $6 - i32.lt_u + local.get $5 + i32.lt_s if - local.get $4 + local.get $6 local.get $0 - i32.const 2 + i32.const 1 i32.shl i32.add - local.tee $7 - f32.load $0 - local.set $1 - local.get $7 - local.get $4 - local.get $5 + local.get $8 local.get $0 - i32.sub - i32.const 2 + i32.const 3 i32.shl i32.add - local.tee $7 - f32.load $0 - f32.store $0 - local.get $7 - local.get $1 - f32.store $0 + f64.load $0 + local.tee $3 + i32.trunc_sat_f64_s + i32.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i32.store16 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|01 + br $for-loop|06 end end + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12144 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store $0 offset=16 + local.get $4 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12192 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=16 + local.get $4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $2 - local.get $3 - i32.store $0 offset=16 - local.get $3 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $0 + i32.load $0 offset=8 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.ne + i32.shr_u + local.tee $3 + local.get $1 + i32.load $0 offset=12 + i32.ne if i32.const 0 i32.const 1568 - i32.const 577 + i32.const 758 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.tee $5 + local.get $0 + i32.load $0 offset=4 + i32.add + i32.load16_u $0 + local.tee $4 + local.get $1 + i32.load $0 offset=4 + local.get $5 + i32.add + i32.load16_u $0 + local.tee $5 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 12288 + i32.store $0 + i32.const 12288 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> (type $none_=>_none) (local $0 i32) - (local $1 f64) - (local $2 i32) - (local $3 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -39575,437 +39932,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 - i32.const 7616 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 i32.store $0 - local.get $2 - i32.const 7628 - i32.load $0 - local.tee $2 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Float64Array#constructor - local.tee $4 - i32.store $0 offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $4 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - local.get $3 - i32.load $0 offset=4 - local.set $5 - local.get $3 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $6 - i32.const 1 - i32.gt_u - if - local.get $6 - i32.const 1 - i32.shr_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|0 - local.get $0 - local.get $7 - i32.lt_u - if - local.get $5 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $8 - f64.load $0 - local.set $1 - local.get $8 - local.get $5 - local.get $6 - local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.add - local.tee $8 - f64.load $0 - f64.store $0 - local.get $8 - local.get $1 - f64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - call $~lib/typedarray/Float64Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $4 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=12 - i32.const 0 - local.set $0 - local.get $3 - i32.load $0 offset=4 - local.set $4 - local.get $3 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $6 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|01 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $7 - f64.load $0 - local.set $1 - local.get $7 - local.get $4 - local.get $5 - local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.add - local.tee $7 - f64.load $0 - f64.store $0 - local.get $7 - local.get $1 - f64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|01 - end - end - end - local.get $2 - local.get $3 - i32.store $0 offset=16 - local.get $3 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#toString (type $i32_=>_i32) (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store $0 - local.get $1 - i32.const 9584 - i32.store $0 - local.get $0 - call $~lib/typedarray/Uint8Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.load $0 offset=4 - i32.add - i32.load8_s $0 - local.tee $4 - local.get $2 - local.get $1 - i32.load $0 offset=4 - i32.add - i32.load8_s $0 - local.tee $5 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 11344 - i32.store $0 - i32.const 11344 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (type $none_=>_none) - (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store $0 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor @@ -40046,18 +39993,18 @@ call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Uint16Array#constructor local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> + call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11312 + i32.const 1 + i32.const 66 + i32.const 12240 call $~lib/rt/__newArray local.set $5 global.get $~lib/memory/__stack_pointer @@ -40065,23 +40012,25 @@ i32.store $0 offset=16 local.get $4 local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store $0 offset=16 block $folding-inner0 - local.get $4 - i32.load $0 offset=8 i32.const 11100 i32.load $0 local.tee $8 i32.const 3 i32.add - i32.lt_s + local.get $4 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + i32.gt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 3 + i32.const 6 i32.add local.set $5 i32.const 11092 @@ -40092,8 +40041,10 @@ local.get $8 i32.lt_s if - local.get $0 local.get $5 + local.get $0 + i32.const 1 + i32.shl i32.add local.get $9 local.get $0 @@ -40102,7 +40053,7 @@ i32.add f32.load $0 local.tee $2 - i32.trunc_sat_f32_s + i32.trunc_sat_f32_u i32.const 0 local.get $2 local.get $2 @@ -40110,7 +40061,7 @@ f32.const 0 f32.eq select - i32.store8 $0 + i32.store16 $0 local.get $0 i32.const 1 i32.add @@ -40119,9 +40070,9 @@ end end i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11392 + i32.const 1 + i32.const 66 + i32.const 12336 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40129,14 +40080,14 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $4 local.get $6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11424 + i32.const 1 + i32.const 66 + i32.const 12384 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40144,22 +40095,24 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store $0 offset=16 - local.get $4 - i32.load $0 offset=8 i32.const 11196 i32.load $0 local.tee $5 i32.const 2 i32.add - i32.lt_s + local.get $4 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + i32.gt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 2 + i32.const 4 i32.add local.set $6 i32.const 11188 @@ -40167,13 +40120,15 @@ local.set $8 i32.const 0 local.set $0 - loop $for-loop|07 + loop $for-loop|06 local.get $0 local.get $5 i32.lt_s if - local.get $0 local.get $6 + local.get $0 + i32.const 1 + i32.shl i32.add local.get $8 local.get $0 @@ -40182,7 +40137,7 @@ i32.add f64.load $0 local.tee $3 - i32.trunc_sat_f64_s + i32.trunc_sat_f64_u i32.const 0 local.get $3 local.get $3 @@ -40190,18 +40145,18 @@ f64.const 0 f64.eq select - i32.store8 $0 + i32.store16 $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|07 + br $for-loop|06 end end i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11456 + i32.const 1 + i32.const 66 + i32.const 12432 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40209,22 +40164,22 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $4 local.get $7 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $4 local.get $1 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> + call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11488 + i32.const 1 + i32.const 66 + i32.const 12480 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40232,7 +40187,7 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -40246,7 +40201,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -40271,6 +40226,8 @@ i32.store $0 local.get $0 i32.load $0 offset=8 + i32.const 2 + i32.shr_u local.tee $3 local.get $1 i32.load $0 offset=12 @@ -40289,30 +40246,33 @@ i32.lt_s if local.get $2 + i32.const 2 + i32.shl + local.tee $5 local.get $0 i32.load $0 offset=4 i32.add - i32.load8_u $0 + i32.load $0 local.tee $4 - local.get $2 local.get $1 i32.load $0 offset=4 + local.get $5 i32.add - i32.load8_u $0 + i32.load $0 local.tee $5 i32.ne if global.get $~lib/memory/__stack_pointer - i32.const 11552 + i32.const 12592 i32.store $0 - i32.const 11552 + i32.const 12592 i32.const 3 local.get $2 f64.convert_i32_s local.get $4 - f64.convert_i32_u + f64.convert_i32_s local.get $5 - f64.convert_i32_u + f64.convert_i32_s f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -40335,7 +40295,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (type $none_=>_none) (local $0 i32) (local $1 i32) (local $2 f32) @@ -40346,6 +40306,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -40369,38 +40330,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store $0 - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $8 i32.store $0 offset=4 - local.get $7 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -40423,18 +40384,20 @@ call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Uint8Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 + i32.const 11008 i32.const 0 - i32.const 64 - i32.const 11520 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12528 call $~lib/rt/__newArray local.set $5 global.get $~lib/memory/__stack_pointer @@ -40442,44 +40405,48 @@ i32.store $0 offset=16 local.get $4 local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store $0 offset=16 block $folding-inner0 - local.get $4 - i32.load $0 offset=8 i32.const 11100 i32.load $0 - local.tee $8 + local.tee $5 i32.const 3 i32.add - i32.lt_s + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 3 + i32.const 12 i32.add - local.set $5 + local.set $9 i32.const 11092 i32.load $0 - local.set $9 + local.set $10 loop $for-loop|0 local.get $0 - local.get $8 + local.get $5 i32.lt_s if - local.get $0 - local.get $5 - i32.add - local.get $9 + local.get $10 local.get $0 i32.const 2 i32.shl + local.tee $6 i32.add f32.load $0 - local.tee $2 - i32.trunc_sat_f32_u + local.set $2 + local.get $6 + local.get $9 + i32.add + local.get $2 + i32.trunc_sat_f32_s i32.const 0 local.get $2 local.get $2 @@ -40487,7 +40454,7 @@ f32.const 0 f32.eq select - i32.store8 $0 + i32.store $0 local.get $0 i32.const 1 i32.add @@ -40496,9 +40463,9 @@ end end i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11600 + i32.const 2 + i32.const 17 + i32.const 12640 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40506,14 +40473,14 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $4 - local.get $6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + local.get $7 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11632 + i32.const 2 + i32.const 17 + i32.const 12704 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40521,45 +40488,49 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store $0 offset=16 - local.get $4 - i32.load $0 offset=8 i32.const 11196 i32.load $0 local.tee $5 i32.const 2 i32.add - i32.lt_s + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 2 + i32.const 8 i32.add local.set $6 i32.const 11188 i32.load $0 - local.set $8 + local.set $7 i32.const 0 local.set $0 - loop $for-loop|07 + loop $for-loop|06 local.get $0 local.get $5 i32.lt_s if - local.get $0 local.get $6 + local.get $0 + i32.const 2 + i32.shl i32.add - local.get $8 + local.get $7 local.get $0 i32.const 3 i32.shl i32.add f64.load $0 local.tee $3 - i32.trunc_sat_f64_u + i32.trunc_sat_f64_s i32.const 0 local.get $3 local.get $3 @@ -40567,18 +40538,18 @@ f64.const 0 f64.eq select - i32.store8 $0 + i32.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|07 + br $for-loop|06 end end i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11664 + i32.const 2 + i32.const 17 + i32.const 12768 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40586,22 +40557,22 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $4 - local.get $7 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $4 local.get $1 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> + call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11696 + i32.const 2 + i32.const 17 + i32.const 12832 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -40609,7 +40580,7 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -40623,7 +40594,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -40648,6 +40619,8 @@ i32.store $0 local.get $0 i32.load $0 offset=8 + i32.const 2 + i32.shr_u local.tee $3 local.get $1 i32.load $0 offset=12 @@ -40666,23 +40639,26 @@ i32.lt_s if local.get $2 + i32.const 2 + i32.shl + local.tee $5 local.get $0 i32.load $0 offset=4 i32.add - i32.load8_u $0 + i32.load $0 local.tee $4 - local.get $2 local.get $1 i32.load $0 offset=4 + local.get $5 i32.add - i32.load8_u $0 + i32.load $0 local.tee $5 i32.ne if global.get $~lib/memory/__stack_pointer - i32.const 11760 + i32.const 12960 i32.store $0 - i32.const 11760 + i32.const 12960 i32.const 3 local.get $2 f64.convert_i32_s @@ -40712,11 +40688,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> (type $none_=>_none) (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -40740,362 +40716,264 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.const 20 memory.fill $0 - local.get $3 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $7 i32.store $0 - local.get $4 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $8 i32.store $0 offset=4 - local.get $5 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.tee $1 i32.store $0 offset=8 - local.get $6 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $7 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 + local.get $4 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 12896 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store $0 offset=16 + local.get $4 + local.get $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store $0 offset=16 block $folding-inner0 - i32.const 11020 + i32.const 11100 i32.load $0 - local.tee $8 - local.get $7 + local.tee $5 + i32.const 3 + i32.add + local.get $4 i32.load $0 offset=8 + i32.const 2 + i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $7 + local.get $4 i32.load $0 offset=4 + i32.const 12 + i32.add local.set $9 - i32.const 11012 + i32.const 11092 i32.load $0 local.set $10 loop $for-loop|0 local.get $0 - local.get $8 + local.get $5 i32.lt_s if - local.get $0 - local.get $9 - i32.add - i32.const 255 local.get $10 local.get $0 i32.const 2 i32.shl + local.tee $6 i32.add - i32.load $0 - local.tee $3 - i32.sub - i32.const 31 - i32.shr_s - local.get $3 - i32.or - local.get $3 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11728 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $7 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - local.get $7 - i32.load $0 offset=8 - i32.const 11100 - i32.load $0 - local.tee $3 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner0 - local.get $7 - i32.load $0 offset=4 - i32.const 3 - i32.add - local.set $8 - i32.const 11092 - i32.load $0 - local.set $9 - i32.const 0 - local.set $0 - loop $for-loop|07 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $8 - i32.add + f32.load $0 + local.set $2 + local.get $6 local.get $9 - local.get $0 - i32.const 2 - i32.shl i32.add - f32.load $0 - local.tee $1 - f32.const 255 - f32.min - f32.const 0 - f32.max + local.get $2 i32.trunc_sat_f32_u i32.const 0 - local.get $1 - local.get $1 + local.get $2 + local.get $2 f32.sub f32.const 0 f32.eq select - i32.store8 $0 + i32.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|07 + br $for-loop|0 end end i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11824 + i32.const 2 + i32.const 67 + i32.const 13008 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $7 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $4 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $7 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11856 + i32.const 2 + i32.const 67 + i32.const 13072 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $7 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store $0 offset=16 - local.get $7 - i32.load $0 offset=8 i32.const 11196 i32.load $0 - local.tee $3 + local.tee $5 i32.const 2 i32.add - i32.lt_s + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.gt_s br_if $folding-inner0 - local.get $7 + local.get $4 i32.load $0 offset=4 - i32.const 2 + i32.const 8 i32.add - local.set $4 + local.set $6 i32.const 11188 i32.load $0 - local.set $8 + local.set $7 i32.const 0 local.set $0 - loop $for-loop|016 + loop $for-loop|06 local.get $0 - local.get $3 + local.get $5 i32.lt_s if + local.get $6 local.get $0 - local.get $4 + i32.const 2 + i32.shl i32.add - local.get $8 + local.get $7 local.get $0 i32.const 3 i32.shl i32.add f64.load $0 - local.tee $2 - f64.const 255 - f64.min - f64.const 0 - f64.max + local.tee $3 i32.trunc_sat_f64_u i32.const 0 - local.get $2 - local.get $2 + local.get $3 + local.get $3 f64.sub f64.const 0 f64.eq select - i32.store8 $0 + i32.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|016 + br $for-loop|06 end end i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11888 + i32.const 2 + i32.const 67 + i32.const 13136 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $7 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $7 - local.get $5 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $7 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 - local.get $7 - i32.load $0 offset=8 - i32.const 11276 - i32.load $0 - local.tee $3 - i32.const 7 - i32.add - i32.lt_s - br_if $folding-inner0 - local.get $7 - i32.load $0 offset=4 - i32.const 7 - i32.add - local.set $4 - i32.const 11268 - i32.load $0 - local.set $5 - i32.const 0 - local.set $0 - loop $for-loop|025 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $4 - i32.add - i32.const 255 - local.get $0 - local.get $5 - i32.add - i32.load8_s $0 - local.tee $6 - i32.sub - i32.const 31 - i32.shr_s - local.get $6 - i32.or - local.get $6 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|025 - end - end + local.get $4 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11920 + i32.const 2 + i32.const 67 + i32.const 13200 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $7 + local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -41109,11 +40987,12 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) + (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -41134,7 +41013,7 @@ i32.store $0 local.get $0 i32.load $0 offset=8 - i32.const 1 + i32.const 3 i32.shr_u local.tee $3 local.get $1 @@ -41154,33 +41033,33 @@ i32.lt_s if local.get $2 - i32.const 1 + i32.const 3 i32.shl - local.tee $5 + local.tee $4 local.get $0 i32.load $0 offset=4 i32.add - i32.load16_s $0 - local.tee $4 + i64.load $0 + local.tee $5 local.get $1 i32.load $0 offset=4 - local.get $5 + local.get $4 i32.add - i32.load16_s $0 - local.tee $5 - i32.ne + i64.load $0 + local.tee $6 + i64.ne if global.get $~lib/memory/__stack_pointer - i32.const 12000 + i32.const 13376 i32.store $0 - i32.const 12000 + i32.const 13376 i32.const 3 local.get $2 f64.convert_i32_s - local.get $4 - f64.convert_i32_s local.get $5 - f64.convert_i32_s + f64.convert_i64_s + local.get $6 + f64.convert_i64_s f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -41203,11 +41082,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 f64) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -41237,38 +41116,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $5 i32.store $0 - local.get $6 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $6 i32.store $0 offset=4 - local.get $7 + local.get $6 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -41291,57 +41170,57 @@ call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Int64Array#constructor local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> + call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 - i32.const 1 - i32.const 65 - i32.const 11952 + i32.const 3 + i32.const 68 + i32.const 13264 call $~lib/rt/__newArray - local.set $5 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.store $0 offset=16 local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store $0 offset=16 block $folding-inner0 i32.const 11100 i32.load $0 - local.tee $8 + local.tee $7 i32.const 3 i32.add local.get $4 i32.load $0 offset=8 - i32.const 1 + i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 6 + i32.const 24 i32.add - local.set $5 + local.set $8 i32.const 11092 i32.load $0 local.set $9 loop $for-loop|0 local.get $0 - local.get $8 + local.get $7 i32.lt_s if - local.get $5 + local.get $8 local.get $0 - i32.const 1 + i32.const 3 i32.shl i32.add local.get $9 @@ -41350,16 +41229,16 @@ i32.shl i32.add f32.load $0 - local.tee $2 - i32.trunc_sat_f32_s - i32.const 0 - local.get $2 - local.get $2 + local.tee $3 + i64.trunc_sat_f32_s + i64.const 0 + local.get $3 + local.get $3 f32.sub f32.const 0 f32.eq select - i32.store16 $0 + i64.store $0 local.get $0 i32.const 1 i32.add @@ -41368,9 +41247,9 @@ end end i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12048 + i32.const 3 + i32.const 68 + i32.const 13424 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41378,14 +41257,14 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $4 - local.get $6 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12096 + i32.const 3 + i32.const 68 + i32.const 13536 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41393,7 +41272,7 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store $0 offset=16 @@ -41404,57 +41283,57 @@ i32.add local.get $4 i32.load $0 offset=8 - i32.const 1 + i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 4 + i32.const 16 i32.add - local.set $6 + local.set $7 i32.const 11188 i32.load $0 local.set $8 i32.const 0 local.set $0 - loop $for-loop|07 + loop $for-loop|06 local.get $0 local.get $5 i32.lt_s if - local.get $6 - local.get $0 - i32.const 1 - i32.shl - i32.add local.get $8 local.get $0 i32.const 3 i32.shl + local.tee $9 i32.add f64.load $0 - local.tee $3 - i32.trunc_sat_f64_s - i32.const 0 - local.get $3 - local.get $3 + local.set $2 + local.get $7 + local.get $9 + i32.add + local.get $2 + i64.trunc_sat_f64_s + i64.const 0 + local.get $2 + local.get $2 f64.sub f64.const 0 f64.eq select - i32.store16 $0 + i64.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|07 + br $for-loop|06 end end i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12144 + i32.const 3 + i32.const 68 + i32.const 13648 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41462,22 +41341,22 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $4 - local.get $7 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $4 local.get $1 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> + call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12192 + i32.const 3 + i32.const 68 + i32.const 13760 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41485,7 +41364,7 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -41499,11 +41378,12 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) + (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -41524,7 +41404,7 @@ i32.store $0 local.get $0 i32.load $0 offset=8 - i32.const 1 + i32.const 3 i32.shr_u local.tee $3 local.get $1 @@ -41544,33 +41424,33 @@ i32.lt_s if local.get $2 - i32.const 1 + i32.const 3 i32.shl - local.tee $5 + local.tee $4 local.get $0 i32.load $0 offset=4 i32.add - i32.load16_u $0 - local.tee $4 + i64.load $0 + local.tee $5 local.get $1 i32.load $0 offset=4 - local.get $5 + local.get $4 i32.add - i32.load16_u $0 - local.tee $5 - i32.ne + i64.load $0 + local.tee $6 + i64.ne if global.get $~lib/memory/__stack_pointer - i32.const 12288 + i32.const 13984 i32.store $0 - i32.const 12288 + i32.const 13984 i32.const 3 local.get $2 f64.convert_i32_s - local.get $4 - f64.convert_i32_u local.get $5 - f64.convert_i32_u + f64.convert_i64_u + local.get $6 + f64.convert_i64_u f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -41593,11 +41473,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> (type $none_=>_none) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 f64) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -41627,38 +41507,38 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $5 i32.store $0 - local.get $6 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $6 i32.store $0 offset=4 - local.get $7 + local.get $6 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -41681,57 +41561,57 @@ call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Uint64Array#constructor local.tee $4 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> + call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12240 + i32.const 3 + i32.const 69 + i32.const 13872 call $~lib/rt/__newArray - local.set $5 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.store $0 offset=16 local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store $0 offset=16 block $folding-inner0 i32.const 11100 i32.load $0 - local.tee $8 + local.tee $7 i32.const 3 i32.add local.get $4 i32.load $0 offset=8 - i32.const 1 + i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 6 + i32.const 24 i32.add - local.set $5 + local.set $8 i32.const 11092 i32.load $0 local.set $9 loop $for-loop|0 local.get $0 - local.get $8 + local.get $7 i32.lt_s if - local.get $5 + local.get $8 local.get $0 - i32.const 1 + i32.const 3 i32.shl i32.add local.get $9 @@ -41740,16 +41620,16 @@ i32.shl i32.add f32.load $0 - local.tee $2 - i32.trunc_sat_f32_u - i32.const 0 - local.get $2 - local.get $2 + local.tee $3 + i64.trunc_sat_f32_u + i64.const 0 + local.get $3 + local.get $3 f32.sub f32.const 0 f32.eq select - i32.store16 $0 + i64.store $0 local.get $0 i32.const 1 i32.add @@ -41758,9 +41638,9 @@ end end i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12336 + i32.const 3 + i32.const 69 + i32.const 14032 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41768,14 +41648,14 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $4 - local.get $6 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12384 + i32.const 3 + i32.const 69 + i32.const 14144 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41783,7 +41663,7 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store $0 offset=16 @@ -41794,57 +41674,57 @@ i32.add local.get $4 i32.load $0 offset=8 - i32.const 1 + i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 local.get $4 i32.load $0 offset=4 - i32.const 4 + i32.const 16 i32.add - local.set $6 + local.set $7 i32.const 11188 i32.load $0 local.set $8 i32.const 0 local.set $0 - loop $for-loop|07 + loop $for-loop|06 local.get $0 local.get $5 i32.lt_s if - local.get $6 - local.get $0 - i32.const 1 - i32.shl - i32.add local.get $8 local.get $0 i32.const 3 i32.shl + local.tee $9 i32.add f64.load $0 - local.tee $3 - i32.trunc_sat_f64_u - i32.const 0 - local.get $3 - local.get $3 + local.set $2 + local.get $7 + local.get $9 + i32.add + local.get $2 + i64.trunc_sat_f64_u + i64.const 0 + local.get $2 + local.get $2 f64.sub f64.const 0 f64.eq select - i32.store16 $0 + i64.store $0 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|07 + br $for-loop|06 end end i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12432 + i32.const 3 + i32.const 69 + i32.const 14256 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41852,22 +41732,22 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $4 - local.get $7 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $4 local.get $1 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store $0 offset=16 local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> + call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12480 + i32.const 3 + i32.const 69 + i32.const 14368 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -41875,7 +41755,7 @@ i32.store $0 offset=16 local.get $4 local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -41889,11 +41769,12 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) + (local $6 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -41936,31 +41817,31 @@ local.get $2 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $0 i32.load $0 offset=4 i32.add - i32.load $0 - local.tee $4 + f32.load $0 + local.tee $5 local.get $1 i32.load $0 offset=4 - local.get $5 + local.get $4 i32.add - i32.load $0 - local.tee $5 - i32.ne + f32.load $0 + local.tee $6 + f32.ne if global.get $~lib/memory/__stack_pointer - i32.const 12592 + i32.const 14544 i32.store $0 - i32.const 12592 + i32.const 14544 i32.const 3 local.get $2 f64.convert_i32_s - local.get $4 - f64.convert_i32_s local.get $5 - f64.convert_i32_s + f64.promote_f32 + local.get $6 + f64.promote_f32 f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -41983,310 +41864,12 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (type $none_=>_none) - (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store $0 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $8 - i32.store $0 offset=4 - local.get $8 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12528 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store $0 offset=16 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - i32.const 11100 - i32.load $0 - local.tee $5 - i32.const 3 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 12 - i32.add - local.set $9 - i32.const 11092 - i32.load $0 - local.set $10 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $10 - local.get $0 - i32.const 2 - i32.shl - local.tee $6 - i32.add - f32.load $0 - local.set $2 - local.get $6 - local.get $9 - i32.add - local.get $2 - i32.trunc_sat_f32_s - i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i32.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12640 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - local.get $7 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12704 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 8 - i32.add - local.set $6 - i32.const 11188 - i32.load $0 - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|07 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load $0 - local.tee $3 - i32.trunc_sat_f64_s - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i32.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|07 - end - end - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12768 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - local.get $8 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12832 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) + (local $6 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -42307,7 +41890,7 @@ i32.store $0 local.get $0 i32.load $0 offset=8 - i32.const 2 + i32.const 3 i32.shr_u local.tee $3 local.get $1 @@ -42327,33 +41910,31 @@ i32.lt_s if local.get $2 - i32.const 2 + i32.const 3 i32.shl - local.tee $5 + local.tee $4 local.get $0 i32.load $0 offset=4 i32.add - i32.load $0 - local.tee $4 + f64.load $0 + local.tee $5 local.get $1 i32.load $0 offset=4 - local.get $5 + local.get $4 i32.add - i32.load $0 - local.tee $5 - i32.ne + f64.load $0 + local.tee $6 + f64.ne if global.get $~lib/memory/__stack_pointer - i32.const 12960 + i32.const 14896 i32.store $0 - i32.const 12960 + i32.const 14896 i32.const 3 local.get $2 f64.convert_i32_s - local.get $4 - f64.convert_i32_u local.get $5 - f64.convert_i32_u + local.get $6 f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -42376,3354 +41957,2099 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> (type $none_=>_none) + (func $start:std/typedarray (type $none_=>_none) (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) + (local $6 f32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) + (local $10 f64) + (local $11 i64) + (local $12 i32) + (local $13 i64) + (local $14 f32) + (local $15 f64) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 120 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store $0 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $8 - i32.store $0 offset=4 - local.get $8 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 12896 - call $~lib/rt/__newArray - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store $0 offset=16 - local.get $4 - local.get $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - i32.const 11100 - i32.load $0 - local.tee $5 - i32.const 3 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 12 - i32.add - local.set $9 - i32.const 11092 - i32.load $0 - local.set $10 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $10 - local.get $0 - i32.const 2 - i32.shl - local.tee $6 - i32.add - f32.load $0 - local.set $2 - local.get $6 - local.get $9 - i32.add - local.get $2 - i32.trunc_sat_f32_u + block $folding-inner38 + block $folding-inner24 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - select - i32.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13008 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $4 - local.get $7 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13072 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 8 - i32.add - local.set $6 - i32.const 11188 - i32.load $0 - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|07 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $0 - i32.const 3 + i32.const 120 + memory.fill $0 + memory.size $0 + i32.const 16 i32.shl - i32.add - f64.load $0 - local.tee $3 - i32.trunc_sat_f64_u - i32.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i32.store $0 - local.get $0 + i32.const 49088 + i32.sub i32.const 1 - i32.add - local.set $0 - br $for-loop|07 - end - end - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13136 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $4 - local.get $8 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13200 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - i32.const 3 - i32.shl - local.tee $4 - local.get $0 - i32.load $0 offset=4 - i32.add - i64.load $0 - local.tee $5 - local.get $1 - i32.load $0 offset=4 - local.get $4 - i32.add - i64.load $0 - local.tee $6 - i64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 13376 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 i32.store $0 - i32.const 13376 + i32.const 1288 + i32.const 1280 + i32.store $0 + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store $0 + i32.const 1320 + i32.const 1312 + i32.store $0 + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store $0 + i32.const 1464 + i32.const 1456 + i32.store $0 + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + global.get $~lib/memory/__stack_pointer i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store $0 local.get $2 - 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.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> (type $none_=>_none) - (local $0 i32) - (local $1 i32) - (local $2 f64) - (local $3 f32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 - i32.store $0 - local.get $5 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $5 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $5 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $6 - i32.store $0 offset=4 - local.get $6 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $6 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $6 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $6 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13264 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store $0 offset=16 - local.get $4 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - i32.const 11100 - i32.load $0 - local.tee $7 - i32.const 3 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 24 - i32.add - local.set $8 - i32.const 11092 - i32.load $0 - local.set $9 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $8 - local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 2 i32.const 3 - i32.shl - i32.add - local.get $9 - local.get $0 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.load $0 offset=8 i32.const 2 - i32.shl - i32.add - f32.load $0 - local.tee $3 - i64.trunc_sat_f32_s - i64.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select - i64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13424 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $4 - local.get $5 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13536 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 16 - i32.add - local.set $7 - i32.const 11188 - i32.load $0 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|07 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $8 - local.get $0 + i32.shr_u i32.const 3 - i32.shl - local.tee $9 - i32.add - f64.load $0 - local.set $2 - local.get $7 - local.get $9 - i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i64.trunc_sat_f64_s - i64.const 0 + i32.load $0 offset=4 local.get $2 + i32.load $0 + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|07 - end - end - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13648 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $4 - local.get $6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13760 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - i32.const 3 - i32.shl - local.tee $4 - local.get $0 - i32.load $0 offset=4 - i32.add - i64.load $0 - local.tee $5 - local.get $1 - i32.load $0 offset=4 - local.get $4 - i32.add - i64.load $0 - local.tee $6 - i64.ne - if + i32.load $0 offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 13984 + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.tee $2 i32.store $0 - i32.const 13984 - i32.const 3 local.get $2 - 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.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (type $none_=>_none) - (local $0 i32) - (local $1 i32) - (local $2 f64) - (local $3 f32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 - i32.store $0 - local.get $5 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $5 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $5 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $6 - i32.store $0 offset=4 - local.get $6 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $6 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $6 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $6 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store $0 offset=8 - local.get $1 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 13872 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store $0 offset=16 - local.get $4 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store $0 offset=16 - block $folding-inner0 - i32.const 11100 - i32.load $0 - local.tee $7 - i32.const 3 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 24 - i32.add - local.set $8 - i32.const 11092 - i32.load $0 - local.set $9 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $9 - local.get $0 + call $~lib/typedarray/Int32Array#__get i32.const 2 - i32.shl - i32.add - f32.load $0 - local.tee $3 - i64.trunc_sat_f32_u - i64.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select - i64.store $0 - local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store $0 offset=4 + local.get $2 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $2 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14032 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $4 - local.get $5 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14144 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store $0 offset=16 - i32.const 11196 - i32.load $0 - local.tee $5 - i32.const 2 - i32.add - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $4 - i32.load $0 offset=4 - i32.const 16 - i32.add - local.set $7 - i32.const 11188 - i32.load $0 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|07 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $8 - local.get $0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $2 i32.const 3 - i32.shl - local.tee $9 - i32.add - f64.load $0 - local.set $2 - local.get $7 - local.get $9 - i32.add + f64.const 6 + call $~lib/typedarray/Float64Array#__set local.get $2 - i64.trunc_sat_f64_u - i64.const 0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set local.get $2 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set local.get $2 - f64.sub - f64.const 0 - f64.eq - select - i64.store $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|07 - end - end - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14256 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $4 - local.get $6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $1 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store $0 offset=16 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14368 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store $0 offset=16 - local.get $4 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 f32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - i32.const 2 - i32.shl - local.tee $4 - local.get $0 - i32.load $0 offset=4 - i32.add - f32.load $0 - local.tee $5 - local.get $1 - i32.load $0 offset=4 - local.get $4 - i32.add - f32.load $0 - local.tee $6 - f32.ne - if + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $2 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 14544 - i32.store $0 - i32.const 14544 + local.get $2 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.tee $2 + i32.store $0 offset=4 + local.get $2 + i32.load $0 offset=8 i32.const 3 + i32.shr_u + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - 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.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store $0 - local.get $0 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - local.get $1 - i32.load $0 offset=12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - i32.const 3 - i32.shl - local.tee $4 - local.get $0 - i32.load $0 offset=4 - i32.add - f64.load $0 - local.tee $5 - local.get $1 - i32.load $0 offset=4 - local.get $4 - i32.add - f64.load $0 - local.tee $6 - f64.ne - if + global.set $~argumentsLength + local.get $2 + call $~lib/typedarray/Float64Array#sort@varargs + drop + local.get $2 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + local.get $2 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $2 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $2 + 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 1568 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 14896 - i32.store $0 - i32.const 14896 i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store $0 offset=8 local.get $2 - f64.convert_i32_s - local.get $5 - local.get $6 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/typedarray (type $none_=>_none) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f64) - (local $11 i64) - (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 f32) - (local $16 f64) - global.get $~lib/memory/__stack_pointer - i32.const 120 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner36 - block $folding-inner35 - block $folding-inner34 - block $folding-inner33 - block $folding-inner32 - block $folding-inner31 - block $folding-inner30 - block $folding-inner29 - block $folding-inner28 - block $folding-inner27 - block $folding-inner26 - block $folding-inner25 - block $folding-inner24 - block $folding-inner23 - block $folding-inner22 - block $folding-inner21 - block $folding-inner20 - block $folding-inner19 - block $folding-inner18 - block $folding-inner17 - block $folding-inner16 - block $folding-inner15 - block $folding-inner14 - block $folding-inner13 - block $folding-inner12 - block $folding-inner11 - block $folding-inner10 - block $folding-inner9 - block $folding-inner8 - block $folding-inner7 - block $folding-inner6 - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 120 - memory.fill $0 - memory.size $0 - i32.const 16 - i32.shl - i32.const 49088 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store $0 - i32.const 1288 - i32.const 1280 - i32.store $0 - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store $0 - i32.const 1320 - i32.const 1312 - i32.store $0 - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store $0 - i32.const 1464 - i32.const 1456 - i32.store $0 - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store $0 - local.get $2 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 100 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - local.tee $2 - i32.store $0 - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - i32.store $0 offset=4 - local.get $2 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $2 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $2 - i32.const 2 - f64.const 7 - call $~lib/typedarray/Float64Array#__set - local.get $2 - i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $2 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - local.get $2 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $2 - i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $2 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - local.tee $2 - i32.store $0 offset=4 - local.get $2 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - i32.const 16 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 32 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $~argumentsLength - local.get $2 - call $~lib/typedarray/Float64Array#sort@varargs - drop - local.get $2 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - if (result i32) - local.get $2 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $2 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $2 - 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 1568 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - i32.store $0 offset=8 - local.get $2 - i32.const 0 - i32.const -32 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 - i32.const 2 - i32.const 256 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - if - i32.const 0 - i32.const 1568 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 255 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 137 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $7 - i32.store $0 offset=12 - 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.load $0 offset=4 - local.set $4 - i32.const 1 - local.get $7 - i32.load $0 offset=8 - local.tee $2 - local.get $2 - i32.const 1 - i32.gt_s - select - local.tee $3 - i32.const 3 - local.get $2 - local.get $2 - i32.const 3 - i32.gt_s - select - local.tee $2 - i32.lt_s - if - local.get $3 - local.get $4 - i32.add - i32.const 1 - local.get $2 - local.get $3 - i32.sub - memory.fill $0 - end - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1728 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $7 - local.get $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 149 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.load $0 offset=4 - local.set $4 - local.get $7 - i32.load $0 offset=8 - local.tee $3 - i32.const 0 - local.get $3 - i32.const 0 - i32.le_s - select - local.tee $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $4 - i32.add - i32.const 0 - local.get $3 - local.get $2 - i32.sub - memory.fill $0 - end - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1808 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $7 - local.get $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 152 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.load $0 offset=4 - local.set $4 - local.get $7 - i32.load $0 offset=8 - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - local.tee $3 - local.get $2 - i32.const 3 - i32.sub - local.tee $2 - i32.lt_s - if - local.get $3 - local.get $4 - i32.add - i32.const 1 - local.get $2 - local.get $3 - i32.sub - memory.fill $0 - end - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1840 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $7 - local.get $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.load $0 offset=4 - local.set $4 - local.get $7 - i32.load $0 offset=8 - local.tee $3 - i32.const 2 - i32.sub - local.tee $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $4 - i32.add - i32.const 2 - local.get $3 - local.get $2 - i32.sub - memory.fill $0 - end - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1872 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $7 - local.get $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 158 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.load $0 offset=4 - local.set $4 - i32.const 1 - local.get $7 - i32.load $0 offset=8 - local.tee $2 - local.get $2 - i32.const 1 - i32.gt_s - select - local.tee $3 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - local.tee $2 - i32.lt_s - if - local.get $3 - local.get $4 - i32.add - i32.const 0 - local.get $2 - local.get $3 - i32.sub - memory.fill $0 - end - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1904 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $7 - local.get $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 161 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $5 - i32.store $0 offset=20 - local.get $5 - i32.load $0 offset=4 - local.set $4 - local.get $5 - i32.load $0 offset=8 - local.tee $3 - i32.const 0 - local.get $3 - i32.const 0 - i32.le_s - select - local.tee $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $4 - i32.add - i32.const 0 - local.get $3 - local.get $2 - i32.sub - memory.fill $0 - end - local.get $5 - i32.load $0 offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load $0 offset=4 - local.get $5 - i32.load $0 - i32.sub - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load $0 offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 167 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 0 - i32.const 16 - i32.const 1936 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $5 - local.get $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1968 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $7 - local.get $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 169 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 - i32.store $0 offset=24 - local.get $4 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#fill - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2000 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $4 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 181 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2048 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $4 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 184 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int32Array#fill - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2096 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $4 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 187 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 2 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2144 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $4 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 190 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int32Array#fill - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2192 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $4 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 193 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $3 - i32.store $0 offset=28 - local.get $3 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill - local.get $3 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 197 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load $0 offset=4 - local.get $3 - i32.load $0 - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load $0 offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 199 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 17 - i32.const 2240 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2272 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $4 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 201 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store $0 offset=32 - local.get $2 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $2 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.tee $2 - i32.store $0 offset=36 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 223 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 225 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.tee $2 - i32.store $0 offset=40 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 228 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 229 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 231 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $2 - i32.store $0 offset=44 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 235 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $2 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $4 - i32.store $0 offset=52 - local.get $2 - i32.const 0 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2320 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 248 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 1 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2368 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 250 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 1 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2416 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 252 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 2 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2464 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 254 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2512 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 256 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2560 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 258 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2608 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 260 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 0 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2656 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 262 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2704 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 264 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2752 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 266 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2800 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 268 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=48 - local.get $2 - i32.const -4 - i32.const -3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=56 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2848 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store $0 offset=16 - local.get $3 - local.get $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 - i32.store $0 offset=60 - local.get $4 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $3 - i32.store $0 offset=64 - local.get $3 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 282 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load $0 offset=4 - local.get $3 - i32.load $0 - i32.sub - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load $0 offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 284 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=68 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 287 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 288 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 289 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 290 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 291 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=72 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 294 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 295 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 296 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 297 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $2 - i32.store $0 offset=76 - local.get $2 - local.get $4 - i32.eq - if - i32.const 0 - i32.const 1568 - i32.const 300 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 301 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - local.get $4 - i32.load $0 offset=4 - local.get $4 - i32.load $0 - i32.sub - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 302 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load $0 offset=8 - local.get $4 - i32.load $0 offset=8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 303 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store $0 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $5 - i32.store $0 - local.get $5 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $5 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $5 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 2896 - i32.store $0 offset=4 - local.get $5 - i32.load $0 offset=4 - local.set $4 - local.get $5 - i32.load $0 offset=8 - local.set $3 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $4 - i32.add - i32.load8_s $0 - local.set $2 - i32.const 4 - global.set $~argumentsLength - local.get $9 - local.get $2 - local.get $0 - local.get $5 - i32.const 2896 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $9 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + if + i32.const 0 + i32.const 1568 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $7 + i32.store $0 offset=12 + 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.load $0 offset=4 + local.set $4 + i32.const 1 + local.get $7 + i32.load $0 offset=8 + local.tee $2 + local.get $2 + i32.const 1 + i32.gt_s + select + local.tee $3 + i32.const 3 + local.get $2 + local.get $2 + i32.const 3 + i32.gt_s + select + local.tee $2 + i32.lt_s + if + local.get $3 + local.get $4 + i32.add + i32.const 1 + local.get $2 + local.get $3 + i32.sub + memory.fill $0 + end + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1728 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $7 + local.get $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $7 + i32.load $0 offset=4 + local.set $4 + local.get $7 + i32.load $0 offset=8 + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.le_s + select + local.tee $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + i32.const 0 + local.get $3 + local.get $2 + i32.sub + memory.fill $0 + end + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1808 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $7 + local.get $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.load $0 offset=4 + local.set $4 + local.get $7 + i32.load $0 offset=8 + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + local.tee $3 + local.get $2 + i32.const 3 + i32.sub + local.tee $2 + i32.lt_s + if + local.get $3 + local.get $4 + i32.add + i32.const 1 + local.get $2 + local.get $3 + i32.sub + memory.fill $0 + end + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1840 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $7 + local.get $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + local.get $7 + i32.load $0 offset=4 + local.set $4 + local.get $7 + i32.load $0 offset=8 + local.tee $3 + i32.const 2 + i32.sub + local.tee $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + i32.const 2 + local.get $3 + local.get $2 + i32.sub + memory.fill $0 + end + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1872 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $7 + local.get $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.load $0 offset=4 + local.set $4 + i32.const 1 + local.get $7 + i32.load $0 offset=8 + local.tee $2 + local.get $2 + i32.const 1 + i32.gt_s + select + local.tee $3 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + local.tee $2 + i32.lt_s + if + local.get $3 + local.get $4 + i32.add + i32.const 0 + local.get $2 + local.get $3 + i32.sub + memory.fill $0 + end + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1904 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $7 + local.get $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $5 + i32.store $0 offset=20 + i32.const 1 + global.set $~argumentsLength + local.get $5 + i32.load $0 offset=4 + local.set $4 + local.get $5 + i32.load $0 offset=8 + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.le_s + select + local.tee $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + i32.const 0 + local.get $3 + local.get $2 + i32.sub + memory.fill $0 + end + local.get $5 + i32.load $0 offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load $0 offset=4 + local.get $5 + i32.load $0 + i32.sub + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load $0 offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.const 16 + i32.const 1936 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $5 + local.get $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1968 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $7 + local.get $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + i32.store $0 offset=24 + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2000 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $4 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $4 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2048 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $4 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2096 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $4 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.const 2 + i32.const -2 + call $~lib/typedarray/Int32Array#fill@varargs + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2144 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $4 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int32Array#fill + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2192 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $4 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $3 + i32.store $0 offset=28 + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs + local.get $3 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load $0 offset=4 + local.get $3 + i32.load $0 + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load $0 offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 17 + i32.const 2240 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2272 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $4 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store $0 offset=32 + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $2 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $2 + i32.store $0 offset=36 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $2 + i32.store $0 offset=40 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $2 + i32.store $0 offset=44 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store $0 offset=48 + local.get $2 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $2 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $4 + i32.store $0 offset=52 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2320 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2368 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2416 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2464 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + local.get $2 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2512 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + local.get $2 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2560 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + local.get $2 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2608 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.const 0 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2656 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + local.get $2 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2704 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + local.get $2 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2752 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + local.get $2 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2800 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=48 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.const -4 + i32.const -3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store $0 offset=56 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2848 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store $0 offset=16 + local.get $3 + local.get $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + i32.store $0 offset=60 + local.get $4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $3 + i32.store $0 offset=64 + local.get $3 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load $0 offset=4 + local.get $3 + i32.load $0 + i32.sub + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load $0 offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.tee $2 + i32.store $0 offset=68 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $2 + i32.store $0 offset=72 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $2 + i32.store $0 offset=76 + local.get $2 + local.get $4 + i32.eq + if + i32.const 0 + i32.const 1568 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.get $4 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + local.get $4 + i32.load $0 offset=4 + local.get $4 + i32.load $0 + i32.sub + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load $0 offset=8 + local.get $4 + i32.load $0 offset=8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store $0 + local.get $2 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $5 + i32.store $0 + local.get $5 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $5 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $5 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store $0 offset=4 + local.get $5 + i32.load $0 offset=4 + local.set $4 + local.get $5 + i32.load $0 offset=8 + local.set $3 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $4 + i32.add + i32.load8_s $0 + local.set $2 + i32.const 4 + global.set $~argumentsLength + local.get $0 + local.get $2 + local.get $1 + local.get $5 + i32.const 2896 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + block $folding-inner37 + block $folding-inner36 + block $folding-inner35 + block $folding-inner34 + block $folding-inner33 + block $folding-inner32 + block $folding-inner28 + block $folding-inner27 + block $folding-inner26 + block $folding-inner25 + block $folding-inner23 + block $folding-inner22 + block $folding-inner21 + block $folding-inner20 + block $folding-inner19 + block $folding-inner18 + block $folding-inner17 + block $folding-inner16 + block $folding-inner15 + block $folding-inner14 + block $folding-inner13 + block $folding-inner12 + block $folding-inner11 + block $folding-inner10 + block $folding-inner9 + block $folding-inner8 + block $folding-inner7 + block $folding-inner6 + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -45740,7 +44066,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -45766,43 +44092,43 @@ i32.const 2928 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $5 i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load $0 offset=8 local.set $3 - loop $for-loop|019 - local.get $0 + loop $for-loop|018 + local.get $1 local.get $3 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u $0 local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $5 i32.const 2928 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|019 + local.set $1 + br $for-loop|018 end end - local.get $9 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -45819,7 +44145,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -45845,43 +44171,43 @@ i32.const 2960 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $5 i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load $0 offset=8 local.set $3 - loop $for-loop|029 - local.get $0 + loop $for-loop|024 + local.get $1 local.get $3 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u $0 local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $5 i32.const 2960 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|029 + local.set $1 + br $for-loop|024 end end - local.get $9 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -45898,7 +44224,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -45924,24 +44250,24 @@ i32.const 2992 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $5 i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 - loop $for-loop|034 - local.get $0 + loop $for-loop|028 + local.get $1 local.get $3 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -45949,22 +44275,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $5 i32.const 2992 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|034 + local.set $1 + br $for-loop|028 end end - local.get $9 + local.get $0 i32.const 65535 i32.and i32.const 6 @@ -45981,7 +44307,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46007,24 +44333,24 @@ i32.const 3024 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $5 i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load $0 offset=8 i32.const 1 i32.shr_u local.set $3 - loop $for-loop|040 - local.get $0 + loop $for-loop|033 + local.get $1 local.get $3 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -46032,22 +44358,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $5 i32.const 3024 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|040 + local.set $1 + br $for-loop|033 end end - local.get $9 + local.get $0 i32.const 65535 i32.and i32.const 6 @@ -46064,7 +44390,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46090,24 +44416,24 @@ i32.const 3056 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $5 i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 - loop $for-loop|046 - local.get $0 + loop $for-loop|038 + local.get $1 local.get $3 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -46115,22 +44441,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $5 i32.const 3056 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|046 + local.set $1 + br $for-loop|038 end end - local.get $9 + local.get $0 i32.const 6 i32.ne br_if $folding-inner1 @@ -46145,7 +44471,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46171,24 +44497,24 @@ i32.const 3088 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $5 i32.load $0 offset=4 local.set $4 i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load $0 offset=8 i32.const 2 i32.shr_u local.set $3 - loop $for-loop|052 - local.get $0 + loop $for-loop|042 + local.get $1 local.get $3 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -46196,22 +44522,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $5 i32.const 3088 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|052 + local.set $1 + br $for-loop|042 end end - local.get $9 + local.get $0 i32.const 6 i32.ne br_if $folding-inner1 @@ -46226,7 +44552,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46234,40 +44560,40 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3120 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|058 + local.set $0 + loop $for-loop|046 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -46275,22 +44601,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $13 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 3120 i32.load $0 call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $0 + local.set $13 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|058 + local.set $1 + br $for-loop|046 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner1 @@ -46305,7 +44631,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46313,17 +44639,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -46331,24 +44657,24 @@ i32.const 3152 i32.store $0 offset=4 i64.const 0 - local.set $14 - local.get $4 + local.set $13 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|064 + local.set $0 + loop $for-loop|050 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -46356,22 +44682,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $13 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 3152 i32.load $0 call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $0 + local.set $13 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|064 + local.set $1 + br $for-loop|050 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner1 @@ -46386,7 +44712,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46394,40 +44720,40 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 3184 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|070 + local.set $0 + loop $for-loop|055 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -46435,22 +44761,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $14 local.get $6 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 3184 i32.load $0 call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $15 - local.get $0 + local.set $14 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|070 + local.set $1 + br $for-loop|055 end end - local.get $15 + local.get $14 f32.const 6 f32.ne br_if $folding-inner1 @@ -46465,7 +44791,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46473,40 +44799,40 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3216 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|076 + local.set $0 + loop $for-loop|060 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -46514,22 +44840,22 @@ local.set $10 i32.const 4 global.set $~argumentsLength - local.get $16 + local.get $15 local.get $10 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 3216 i32.load $0 call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $16 - local.get $0 + local.set $15 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|076 + local.set $1 + br $for-loop|060 end end - local.get $16 + local.get $15 f64.const 6 f64.ne br_if $folding-inner1 @@ -46544,7 +44870,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46595,7 +44921,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46646,7 +44972,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46697,7 +45023,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46748,7 +45074,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46799,7 +45125,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46850,7 +45176,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46901,7 +45227,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46952,7 +45278,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47003,7 +45329,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47054,7 +45380,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47105,7 +45431,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47131,7 +45457,7 @@ i32.const 3248 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $4 i32.load $0 offset=4 local.set $3 @@ -47139,35 +45465,35 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 - loop $for-loop|082 - local.get $0 + local.set $1 + loop $for-loop|064 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 local.get $3 i32.add i32.load8_s $0 local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 3248 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|082 + local.set $1 + br $for-loop|064 end end - local.get $9 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -47184,7 +45510,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47210,7 +45536,7 @@ i32.const 3280 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $4 i32.load $0 offset=4 local.set $3 @@ -47218,35 +45544,35 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 - loop $for-loop|088 - local.get $0 + local.set $1 + loop $for-loop|069 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 local.get $3 i32.add i32.load8_u $0 local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 3280 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|088 + local.set $1 + br $for-loop|069 end end - local.get $9 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -47263,7 +45589,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47289,7 +45615,7 @@ i32.const 3312 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $4 i32.load $0 offset=4 local.set $3 @@ -47297,35 +45623,35 @@ i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 - loop $for-loop|096 - local.get $0 + local.set $1 + loop $for-loop|075 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 local.get $3 i32.add i32.load8_u $0 local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 3312 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|096 + local.set $1 + br $for-loop|075 end end - local.get $9 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -47342,7 +45668,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47368,7 +45694,7 @@ i32.const 3344 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $4 i32.load $0 offset=4 local.set $3 @@ -47378,14 +45704,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|0102 - local.get $0 + local.set $1 + loop $for-loop|079 + local.get $1 i32.const 0 i32.ge_s if local.get $3 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -47393,22 +45719,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 3344 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0102 + local.set $1 + br $for-loop|079 end end - local.get $9 + local.get $0 i32.const 65535 i32.and i32.const 6 @@ -47425,7 +45751,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47451,7 +45777,7 @@ i32.const 3376 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $4 i32.load $0 offset=4 local.set $3 @@ -47461,14 +45787,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|0108 - local.get $0 + local.set $1 + loop $for-loop|083 + local.get $1 i32.const 0 i32.ge_s if local.get $3 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -47476,22 +45802,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 3376 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0108 + local.set $1 + br $for-loop|083 end end - local.get $9 + local.get $0 i32.const 65535 i32.and i32.const 6 @@ -47508,7 +45834,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47534,7 +45860,7 @@ i32.const 3408 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $4 i32.load $0 offset=4 local.set $3 @@ -47544,14 +45870,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|0114 - local.get $0 + local.set $1 + loop $for-loop|087 + local.get $1 i32.const 0 i32.ge_s if local.get $3 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -47559,22 +45885,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 3408 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0114 + local.set $1 + br $for-loop|087 end end - local.get $9 + local.get $0 i32.const 6 i32.ne br_if $folding-inner5 @@ -47589,7 +45915,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47615,7 +45941,7 @@ i32.const 3440 i32.store $0 offset=4 i32.const 0 - local.set $9 + local.set $0 local.get $4 i32.load $0 offset=4 local.set $3 @@ -47625,14 +45951,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|0120 - local.get $0 + local.set $1 + loop $for-loop|091 + local.get $1 i32.const 0 i32.ge_s if local.get $3 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -47640,22 +45966,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 3440 i32.load $0 call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0120 + local.set $1 + br $for-loop|091 end end - local.get $9 + local.get $0 i32.const 6 i32.ne br_if $folding-inner5 @@ -47670,7 +45996,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47678,17 +46004,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -47696,24 +46022,24 @@ i32.const 3472 i32.store $0 offset=4 i64.const 0 - local.set $14 - local.get $3 + local.set $13 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|0126 - local.get $0 + local.set $1 + loop $for-loop|095 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -47721,22 +46047,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $13 local.get $11 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 3472 i32.load $0 call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $0 + local.set $13 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0126 + local.set $1 + br $for-loop|095 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner5 @@ -47751,7 +46077,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47759,17 +46085,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -47777,24 +46103,24 @@ i32.const 3504 i32.store $0 offset=4 i64.const 0 - local.set $14 - local.get $3 + local.set $13 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|0132 - local.get $0 + local.set $1 + loop $for-loop|099 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -47802,22 +46128,22 @@ local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $13 local.get $11 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 3504 i32.load $0 call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $0 + local.set $13 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0132 + local.set $1 + br $for-loop|099 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner5 @@ -47832,7 +46158,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47840,17 +46166,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -47858,24 +46184,24 @@ i32.const 3536 i32.store $0 offset=4 f32.const 0 - local.set $15 - local.get $3 + local.set $14 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|0138 - local.get $0 + local.set $1 + loop $for-loop|0103 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -47883,22 +46209,22 @@ local.set $6 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $14 local.get $6 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 3536 i32.load $0 call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $15 - local.get $0 + local.set $14 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0138 + local.set $1 + br $for-loop|0103 end end - local.get $15 + local.get $14 f32.const 6 f32.ne br_if $folding-inner5 @@ -47913,7 +46239,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47921,17 +46247,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -47939,24 +46265,24 @@ i32.const 3568 i32.store $0 offset=4 f64.const 0 - local.set $16 - local.get $3 + local.set $15 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|0144 - local.get $0 + local.set $1 + loop $for-loop|0107 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -47964,22 +46290,22 @@ local.set $10 i32.const 4 global.set $~argumentsLength - local.get $16 + local.get $15 local.get $10 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 3568 i32.load $0 call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $16 - local.get $0 + local.set $15 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0144 + local.set $1 + br $for-loop|0107 end end - local.get $16 + local.get $15 f64.const 6 f64.ne br_if $folding-inner5 @@ -47994,7 +46320,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48005,22 +46331,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $8 + local.tee $7 i32.store $0 - local.get $8 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $8 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store $0 offset=4 @@ -48031,104 +46357,104 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $8 + local.get $7 i32.load $0 offset=8 - local.set $5 - local.get $8 - i32.load $0 offset=4 local.set $4 + local.get $7 + i32.load $0 offset=4 + local.set $3 local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store $0 offset=4 - loop $for-loop|01 - local.get $5 - local.get $13 + loop $for-loop|03 + local.get $4 + local.get $12 i32.gt_s if - local.get $4 - local.get $13 + local.get $3 + local.get $12 i32.add i32.load8_s $0 local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $13 + local.get $1 + local.get $12 i32.add local.get $0 - local.get $13 - local.get $8 + local.get $12 + local.get $7 i32.const 3600 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|01 + local.set $12 + br $for-loop|03 end end - local.get $3 local.get $2 + local.get $1 i32.store $0 - local.get $2 + local.get $1 if - local.get $3 local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 local.get $2 + local.get $1 i32.store $0 offset=4 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $3 + local.get $5 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $3 + br_if $folding-inner26 + local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $3 + br_if $folding-inner27 + local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48136,7 +46462,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48147,22 +46473,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $7 i32.store $0 - local.get $8 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store $0 offset=4 @@ -48173,104 +46499,104 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $8 + local.get $7 i32.load $0 offset=8 - local.set $5 - local.get $8 - i32.load $0 offset=4 local.set $4 + local.get $7 + i32.load $0 offset=4 + local.set $3 local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store $0 offset=4 - loop $for-loop|03 - local.get $5 - local.get $13 + loop $for-loop|05 + local.get $4 + local.get $12 i32.gt_s if - local.get $4 - local.get $13 + local.get $3 + local.get $12 i32.add i32.load8_u $0 local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $13 + local.get $1 + local.get $12 i32.add local.get $0 - local.get $13 - local.get $8 + local.get $12 + local.get $7 i32.const 3632 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|03 + local.set $12 + br $for-loop|05 end end - local.get $3 local.get $2 + local.get $1 i32.store $0 - local.get $2 + local.get $1 if - local.get $3 local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 local.get $2 + local.get $1 i32.store $0 offset=4 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $3 + local.get $5 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $3 + br_if $folding-inner26 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $3 + br_if $folding-inner27 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48278,7 +46604,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48289,22 +46615,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $8 + local.tee $7 i32.store $0 - local.get $8 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $8 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $8 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 3664 i32.store $0 offset=4 @@ -48315,104 +46641,104 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $8 + local.get $7 i32.load $0 offset=8 - local.set $5 - local.get $8 - i32.load $0 offset=4 local.set $4 + local.get $7 + i32.load $0 offset=4 + local.set $3 local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store $0 offset=4 - loop $for-loop|06 - local.get $5 - local.get $13 + loop $for-loop|07 + local.get $4 + local.get $12 i32.gt_s if - local.get $4 - local.get $13 + local.get $3 + local.get $12 i32.add i32.load8_u $0 local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $13 + local.get $1 + local.get $12 i32.add local.get $0 - local.get $13 - local.get $8 + local.get $12 + local.get $7 i32.const 3664 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|06 + local.set $12 + br $for-loop|07 end end - local.get $3 local.get $2 + local.get $1 i32.store $0 - local.get $2 + local.get $1 if - local.get $3 local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 local.get $2 + local.get $1 i32.store $0 offset=4 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $3 + local.get $5 + local.get $2 i32.store $0 offset=8 - local.get $3 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $3 + br_if $folding-inner26 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $3 + br_if $folding-inner27 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48420,7 +46746,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48431,22 +46757,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $12 + local.tee $9 i32.store $0 - local.get $12 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $12 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $12 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 3696 i32.store $0 offset=4 @@ -48457,112 +46783,112 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $12 + local.get $9 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $8 - local.get $12 - i32.load $0 offset=4 local.set $7 + local.get $9 + i32.load $0 offset=4 + local.set $5 local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 offset=4 loop $for-loop|09 - local.get $8 - local.get $13 + local.get $7 + local.get $12 i32.gt_s if - local.get $7 - local.get $13 + local.get $12 i32.const 1 i32.shl - local.tee $2 + local.tee $1 + local.get $5 i32.add i32.load16_s $0 local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add local.get $0 - local.get $13 local.get $12 + local.get $9 i32.const 3696 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|09 end end - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.store $0 - local.get $3 + local.get $2 if - local.get $5 - local.get $3 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.store $0 offset=4 - local.get $5 local.get $4 + local.get $3 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $5 + local.get $8 + local.get $4 i32.store $0 offset=8 - local.get $5 + local.get $4 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $5 + br_if $folding-inner26 + local.get $4 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $5 + br_if $folding-inner27 + local.get $4 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48570,7 +46896,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48581,22 +46907,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $12 + local.tee $9 i32.store $0 - local.get $12 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $12 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $12 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 3728 i32.store $0 offset=4 @@ -48607,112 +46933,112 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $12 + local.get $9 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $8 - local.get $12 - i32.load $0 offset=4 local.set $7 + local.get $9 + i32.load $0 offset=4 + local.set $5 local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 offset=4 - loop $for-loop|012 - local.get $8 - local.get $13 + loop $for-loop|011 + local.get $7 + local.get $12 i32.gt_s if - local.get $7 - local.get $13 + local.get $12 i32.const 1 i32.shl - local.tee $2 + local.tee $1 + local.get $5 i32.add i32.load16_u $0 local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add local.get $0 - local.get $13 local.get $12 + local.get $9 i32.const 3728 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|012 + local.set $12 + br $for-loop|011 end end - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.store $0 - local.get $3 + local.get $2 if - local.get $5 - local.get $3 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.store $0 offset=4 - local.get $5 local.get $4 + local.get $3 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $5 + local.get $8 + local.get $4 i32.store $0 offset=8 - local.get $5 + local.get $4 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $5 + br_if $folding-inner26 + local.get $4 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $5 + br_if $folding-inner27 + local.get $4 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48720,7 +47046,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48731,22 +47057,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $12 + local.tee $9 i32.store $0 - local.get $12 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $12 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $12 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 3760 i32.store $0 offset=4 @@ -48757,112 +47083,112 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $12 + local.get $9 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $8 - local.get $12 - i32.load $0 offset=4 local.set $7 + local.get $9 + i32.load $0 offset=4 + local.set $5 local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 offset=4 - loop $for-loop|015 - local.get $8 - local.get $13 + loop $for-loop|013 + local.get $7 + local.get $12 i32.gt_s if - local.get $7 - local.get $13 + local.get $12 i32.const 2 i32.shl - local.tee $2 + local.tee $1 + local.get $5 i32.add i32.load $0 local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add local.get $0 - local.get $13 local.get $12 + local.get $9 i32.const 3760 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|015 + local.set $12 + br $for-loop|013 end end - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.store $0 - local.get $3 + local.get $2 if - local.get $5 - local.get $3 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.store $0 offset=4 - local.get $5 local.get $4 + local.get $3 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $5 + local.get $8 + local.get $4 i32.store $0 offset=8 - local.get $5 + local.get $4 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $5 + br_if $folding-inner26 + local.get $4 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $5 + br_if $folding-inner27 + local.get $4 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48870,7 +47196,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48881,22 +47207,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $12 + local.tee $9 i32.store $0 - local.get $12 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $12 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $12 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 3792 i32.store $0 offset=4 @@ -48907,112 +47233,112 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $12 + local.get $9 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $8 - local.get $12 - i32.load $0 offset=4 local.set $7 + local.get $9 + i32.load $0 offset=4 + local.set $5 local.get $0 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store $0 offset=4 - loop $for-loop|018 - local.get $8 - local.get $13 + loop $for-loop|015 + local.get $7 + local.get $12 i32.gt_s if - local.get $7 - local.get $13 + local.get $12 i32.const 2 i32.shl - local.tee $2 + local.tee $1 + local.get $5 i32.add i32.load $0 local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add local.get $0 - local.get $13 local.get $12 + local.get $9 i32.const 3792 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|018 + local.set $12 + br $for-loop|015 end end - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.store $0 - local.get $3 + local.get $2 if - local.get $5 - local.get $3 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.store $0 offset=4 - local.get $5 local.get $4 + local.get $3 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $5 + local.get $8 + local.get $4 i32.store $0 offset=8 - local.get $5 + local.get $4 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $5 + br_if $folding-inner26 + local.get $4 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $5 + br_if $folding-inner27 + local.get $4 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49020,7 +47346,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49031,22 +47357,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $8 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $8 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 3824 i32.store $0 offset=4 @@ -49057,112 +47383,112 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $9 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $7 - local.get $9 - i32.load $0 offset=4 local.set $5 + local.get $8 + i32.load $0 offset=4 + local.set $4 local.get $0 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.const 3 i32.shl - local.tee $3 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store $0 offset=4 - loop $for-loop|021 - local.get $7 - local.get $13 + loop $for-loop|017 + local.get $5 + local.get $12 i32.gt_s if - local.get $5 - local.get $13 + local.get $12 i32.const 3 i32.shl local.tee $0 + local.get $4 i32.add i64.load $0 local.set $11 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $1 i32.add local.get $11 - local.get $13 - local.get $9 + local.get $12 + local.get $8 i32.const 3824 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|021 + local.set $12 + br $for-loop|017 end end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store $0 - local.get $2 + local.get $1 if - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store $0 offset=4 - local.get $4 local.get $3 + local.get $2 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $4 + local.get $7 + local.get $3 i32.store $0 offset=8 - local.get $4 + local.get $3 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner20 - local.get $4 + br_if $folding-inner26 + local.get $3 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne - br_if $folding-inner21 - local.get $4 + br_if $folding-inner27 + local.get $3 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 9 i64.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49170,7 +47496,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49181,22 +47507,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $8 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $8 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 3856 i32.store $0 offset=4 @@ -49207,112 +47533,112 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $9 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $7 - local.get $9 - i32.load $0 offset=4 local.set $5 + local.get $8 + i32.load $0 offset=4 + local.set $4 local.get $0 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.const 3 i32.shl - local.tee $3 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store $0 offset=4 - loop $for-loop|024 - local.get $7 - local.get $13 + loop $for-loop|019 + local.get $5 + local.get $12 i32.gt_s if - local.get $5 - local.get $13 + local.get $12 i32.const 3 i32.shl local.tee $0 + local.get $4 i32.add i64.load $0 local.set $11 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $1 i32.add local.get $11 - local.get $13 - local.get $9 + local.get $12 + local.get $8 i32.const 3856 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|024 + local.set $12 + br $for-loop|019 end end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store $0 - local.get $2 + local.get $1 if - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store $0 offset=4 - local.get $4 local.get $3 + local.get $2 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $4 + local.get $7 + local.get $3 i32.store $0 offset=8 - local.get $4 + local.get $3 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner20 - local.get $4 + br_if $folding-inner26 + local.get $3 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.ne - br_if $folding-inner21 - local.get $4 + br_if $folding-inner27 + local.get $3 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 9 i64.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49320,7 +47646,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49331,22 +47657,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $8 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $8 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 3888 i32.store $0 offset=4 @@ -49357,112 +47683,112 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $9 + local.get $8 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $7 - local.get $9 - i32.load $0 offset=4 local.set $5 + local.get $8 + i32.load $0 offset=4 + local.set $4 local.get $0 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.const 2 i32.shl - local.tee $3 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store $0 offset=4 - loop $for-loop|027 - local.get $7 - local.get $13 + loop $for-loop|021 + local.get $5 + local.get $12 i32.gt_s if - local.get $5 - local.get $13 + local.get $12 i32.const 2 i32.shl local.tee $0 + local.get $4 i32.add f32.load $0 local.set $6 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $1 i32.add local.get $6 - local.get $13 - local.get $9 + local.get $12 + local.get $8 i32.const 3888 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|027 + local.set $12 + br $for-loop|021 end end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store $0 - local.get $2 + local.get $1 if - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store $0 offset=4 - local.get $4 local.get $3 + local.get $2 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $4 + local.get $7 + local.get $3 i32.store $0 offset=8 - local.get $4 + local.get $3 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner20 - local.get $4 + br_if $folding-inner26 + local.get $3 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 f32.ne - br_if $folding-inner21 - local.get $4 + br_if $folding-inner27 + local.get $3 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 9 f32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49470,7 +47796,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49481,22 +47807,22 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $9 + local.tee $8 i32.store $0 - local.get $9 + local.get $8 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $8 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $8 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 3920 i32.store $0 offset=4 @@ -49507,106 +47833,106 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store $0 - local.get $9 + local.get $8 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $7 - local.get $9 - i32.load $0 offset=4 local.set $5 + local.get $8 + i32.load $0 offset=4 + local.set $4 local.get $0 i32.const 12 i32.const 14 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.const 3 i32.shl - local.tee $3 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store $0 offset=4 - loop $for-loop|030 - local.get $7 - local.get $13 + loop $for-loop|023 + local.get $5 + local.get $12 i32.gt_s if - local.get $5 - local.get $13 + local.get $12 i32.const 3 i32.shl local.tee $0 + local.get $4 i32.add f64.load $0 local.set $10 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $1 i32.add local.get $10 - local.get $13 - local.get $9 + local.get $12 + local.get $8 i32.const 3920 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_f64) f64.store $0 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 - br $for-loop|030 + local.set $12 + br $for-loop|023 end end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store $0 - local.get $2 + local.get $1 if - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store $0 offset=4 - local.get $4 local.get $3 + local.get $2 i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $4 + local.get $7 + local.get $3 i32.store $0 offset=8 - local.get $4 + local.get $3 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner20 - local.get $4 + br_if $folding-inner26 + local.get $3 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.ne - br_if $folding-inner21 - local.get $4 + br_if $folding-inner27 + local.get $3 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 9 f64.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -49629,7 +47955,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49637,17 +47963,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set @@ -49655,84 +47981,84 @@ global.get $~lib/memory/__stack_pointer i32.const 4304 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0150 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0111 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4304 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0150 + local.set $1 + br $for-loop|0111 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0153 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0113 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4336 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0158 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0117 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4336 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0153 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0113 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0158 + local.set $1 + br $for-loop|0117 end end i32.const 0 @@ -49749,7 +48075,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49757,17 +48083,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set @@ -49775,84 +48101,84 @@ global.get $~lib/memory/__stack_pointer i32.const 4368 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0164 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0121 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4368 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0164 + local.set $1 + br $for-loop|0121 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0167 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0123 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4400 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0172 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0127 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4400 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0167 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0123 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0172 + local.set $1 + br $for-loop|0127 end end i32.const 0 @@ -49869,7 +48195,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49877,102 +48203,102 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0175 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0129 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4432 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0180 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0133 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4432 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0175 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0129 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0180 + local.set $1 + br $for-loop|0133 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0183 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0135 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4464 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0188 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0139 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4464 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0183 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0135 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0188 + local.set $1 + br $for-loop|0139 end end i32.const 0 @@ -49989,7 +48315,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49997,17 +48323,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set @@ -50015,92 +48341,92 @@ global.get $~lib/memory/__stack_pointer i32.const 4496 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0194 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0143 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4496 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0194 + local.set $1 + br $for-loop|0143 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0197 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0145 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4528 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0202 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0149 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4528 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0197 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0145 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0202 + local.set $1 + br $for-loop|0149 end end i32.const 0 @@ -50117,7 +48443,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50125,17 +48451,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set @@ -50143,92 +48469,92 @@ global.get $~lib/memory/__stack_pointer i32.const 4560 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0208 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0153 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4560 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0208 + local.set $1 + br $for-loop|0153 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0211 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0155 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0216 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0159 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4592 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0211 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0155 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0216 + local.set $1 + br $for-loop|0159 end end i32.const 0 @@ -50245,7 +48571,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50253,17 +48579,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set @@ -50271,92 +48597,92 @@ global.get $~lib/memory/__stack_pointer i32.const 4624 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0222 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0163 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4624 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0222 + local.set $1 + br $for-loop|0163 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0225 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0165 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4656 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0230 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0169 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4656 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0225 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0165 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0230 + local.set $1 + br $for-loop|0169 end end i32.const 0 @@ -50373,7 +48699,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50381,17 +48707,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set @@ -50399,92 +48725,92 @@ global.get $~lib/memory/__stack_pointer i32.const 4688 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0236 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0173 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4688 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0236 + local.set $1 + br $for-loop|0173 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0239 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0175 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4720 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0244 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0179 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 4720 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0239 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0175 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0244 + local.set $1 + br $for-loop|0179 end end i32.const 0 @@ -50501,7 +48827,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50509,17 +48835,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set @@ -50527,23 +48853,23 @@ global.get $~lib/memory/__stack_pointer i32.const 4752 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0250 + local.set $0 + loop $for-loop|0183 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -50553,45 +48879,45 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 4752 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0250 + local.set $1 + br $for-loop|0183 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0253 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0185 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4784 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0258 + local.set $0 + loop $for-loop|0189 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -50601,18 +48927,18 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 4784 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0253 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0185 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0258 + local.set $1 + br $for-loop|0189 end end i32.const 0 @@ -50629,7 +48955,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50637,17 +48963,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set @@ -50655,23 +48981,23 @@ global.get $~lib/memory/__stack_pointer i32.const 4816 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0264 + local.set $0 + loop $for-loop|0193 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -50681,45 +49007,45 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 4816 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0264 + local.set $1 + br $for-loop|0193 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0267 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0195 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4848 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0272 + local.set $0 + loop $for-loop|0199 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -50729,18 +49055,18 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 4848 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0267 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0195 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0272 + local.set $1 + br $for-loop|0199 end end i32.const 0 @@ -50757,7 +49083,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50765,17 +49091,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set @@ -50783,23 +49109,23 @@ global.get $~lib/memory/__stack_pointer i32.const 4880 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|0278 + local.set $0 + loop $for-loop|0203 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -50809,45 +49135,45 @@ global.set $~argumentsLength i32.const 1 local.get $6 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 4880 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0278 + local.set $1 + br $for-loop|0203 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0281 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0205 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4912 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|0286 + local.set $0 + loop $for-loop|0209 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -50857,18 +49183,18 @@ global.set $~argumentsLength i32.const 1 local.get $6 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 4912 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0281 + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0205 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0286 + local.set $1 + br $for-loop|0209 end end i32.const 0 @@ -50885,7 +49211,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50893,17 +49219,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set @@ -50911,23 +49237,23 @@ global.get $~lib/memory/__stack_pointer i32.const 4944 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0292 + local.set $0 + loop $for-loop|0213 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -50937,45 +49263,45 @@ global.set $~argumentsLength i32.const 1 local.get $10 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 4944 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0292 + local.set $1 + br $for-loop|0213 end end i32.const 0 end i32.eqz br_if $folding-inner6 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0295 (result i32) + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0215 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4976 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0300 + local.set $0 + loop $for-loop|0219 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -50985,18 +49311,18 @@ global.set $~argumentsLength i32.const 1 local.get $10 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 4976 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0295 + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0215 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0300 + local.set $1 + br $for-loop|0219 end end i32.const 0 @@ -51013,7 +49339,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51021,107 +49347,107 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5008 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|0306 - local.get $0 - local.get $3 + loop $for-loop|0223 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5008 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0306 + local.set $1 + br $for-loop|0223 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5040 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 - i32.const 0 - local.set $0 - local.get $5 - i32.load $0 offset=8 local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0309 - loop $for-loop|0314 - local.get $0 - local.get $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0225 + loop $for-loop|0229 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5040 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0309 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0225 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0314 + local.set $1 + br $for-loop|0229 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51136,7 +49462,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51144,107 +49470,107 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5072 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|0320 - local.get $0 - local.get $3 + loop $for-loop|0233 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5072 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0320 + local.set $1 + br $for-loop|0233 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5104 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0323 - loop $for-loop|0328 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0235 + loop $for-loop|0239 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5104 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0323 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0235 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0328 + local.set $1 + br $for-loop|0239 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51259,7 +49585,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51267,107 +49593,107 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 5136 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0331 - loop $for-loop|0336 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0241 + loop $for-loop|0245 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5136 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0331 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0241 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0336 + local.set $1 + br $for-loop|0245 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5168 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0339 - loop $for-loop|0344 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0247 + loop $for-loop|0251 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5168 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0339 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0247 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0344 + local.set $1 + br $for-loop|0251 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51382,7 +49708,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51390,115 +49716,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5200 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|0350 - local.get $0 - local.get $3 + loop $for-loop|0255 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5200 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0350 + local.set $1 + br $for-loop|0255 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5232 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0353 - loop $for-loop|0358 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0257 + loop $for-loop|0261 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5232 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0353 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0257 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0358 + local.set $1 + br $for-loop|0261 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51513,7 +49839,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51521,115 +49847,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5264 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|0364 - local.get $0 - local.get $3 + loop $for-loop|0265 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5264 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0364 + local.set $1 + br $for-loop|0265 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5296 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0367 - loop $for-loop|0372 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0267 + loop $for-loop|0271 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5296 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0367 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0267 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0372 + local.set $1 + br $for-loop|0271 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51644,7 +49970,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51652,115 +49978,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 5328 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|0378 - local.get $0 - local.get $3 + loop $for-loop|0275 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5328 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0378 + local.set $1 + br $for-loop|0275 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5360 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0381 - loop $for-loop|0386 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0277 + loop $for-loop|0281 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5360 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0381 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0277 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0386 + local.set $1 + br $for-loop|0281 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51775,7 +50101,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51783,115 +50109,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 5392 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|0392 - local.get $0 - local.get $3 + loop $for-loop|0285 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5392 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0392 + local.set $1 + br $for-loop|0285 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5424 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0395 - loop $for-loop|0400 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0287 + loop $for-loop|0291 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 5424 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0395 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0287 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0400 + local.set $1 + br $for-loop|0291 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51906,7 +50232,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51914,41 +50240,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 5456 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|0406 + loop $for-loop|0295 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -51957,47 +50283,47 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5456 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0406 + local.set $1 + br $for-loop|0295 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5488 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0409 - loop $for-loop|0414 - local.get $0 - local.get $2 - i32.lt_s + local.set $0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0297 + loop $for-loop|0301 + local.get $0 + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -52006,23 +50332,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5488 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0409 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0297 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0414 + local.set $1 + br $for-loop|0301 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -52037,7 +50363,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52045,41 +50371,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 5520 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0420 + loop $for-loop|0305 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -52088,47 +50414,47 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5520 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0420 + local.set $1 + br $for-loop|0305 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5552 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0423 - loop $for-loop|0428 + local.set $0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0307 + loop $for-loop|0311 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -52137,23 +50463,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5552 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0423 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0307 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0428 + local.set $1 + br $for-loop|0311 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -52168,7 +50494,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52176,41 +50502,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 5584 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0434 + loop $for-loop|0315 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -52219,47 +50545,47 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5584 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0434 + local.set $1 + br $for-loop|0315 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5616 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0437 - loop $for-loop|0442 + local.set $0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0317 + loop $for-loop|0321 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -52268,23 +50594,23 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5616 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0437 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0317 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0442 + local.set $1 + br $for-loop|0321 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -52299,7 +50625,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52307,41 +50633,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 5648 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0448 + loop $for-loop|0325 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -52350,47 +50676,47 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5648 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0448 + local.set $1 + br $for-loop|0325 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 5680 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0451 - loop $for-loop|0456 + local.set $0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0327 + loop $for-loop|0331 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -52399,23 +50725,23 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5680 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0451 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0327 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0456 + local.set $1 + br $for-loop|0331 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -52430,7 +50756,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52438,107 +50764,107 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5712 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|0462 - local.get $0 + loop $for-loop|0335 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5712 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0462 + local.set $1 + br $for-loop|0335 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 5744 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0465 - loop $for-loop|0470 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0337 + loop $for-loop|0341 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5744 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0465 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0337 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0470 + local.set $1 + br $for-loop|0341 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -52553,7 +50879,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52561,107 +50887,107 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5776 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|0476 - local.get $0 + loop $for-loop|0345 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5776 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0476 + local.set $1 + br $for-loop|0345 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 5808 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0479 - loop $for-loop|0484 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0347 + loop $for-loop|0351 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5808 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0479 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0347 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0484 + local.set $1 + br $for-loop|0351 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -52676,7 +51002,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52684,107 +51010,107 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 5840 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0487 - loop $for-loop|0492 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0353 + loop $for-loop|0357 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5840 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0487 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0353 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0492 + local.set $1 + br $for-loop|0357 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 5872 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0495 - loop $for-loop|0500 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0359 + loop $for-loop|0363 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5872 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0495 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0359 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0500 + local.set $1 + br $for-loop|0363 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -52799,7 +51125,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52807,115 +51133,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5904 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|0506 - local.get $0 + loop $for-loop|0367 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5904 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0506 + local.set $1 + br $for-loop|0367 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 5936 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0509 - loop $for-loop|0514 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0369 + loop $for-loop|0373 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5936 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0509 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0369 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0514 + local.set $1 + br $for-loop|0373 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -52930,7 +51256,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52938,115 +51264,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5968 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|0520 - local.get $0 + loop $for-loop|0377 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5968 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0520 + local.set $1 + br $for-loop|0377 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 6000 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0523 - loop $for-loop|0528 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0379 + loop $for-loop|0383 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6000 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0523 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0379 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0528 + local.set $1 + br $for-loop|0383 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -53061,7 +51387,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53069,115 +51395,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6032 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|0534 - local.get $0 + loop $for-loop|0387 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6032 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0534 + local.set $1 + br $for-loop|0387 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 6064 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0537 - loop $for-loop|0542 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0389 + loop $for-loop|0393 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6064 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0537 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0389 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0542 + local.set $1 + br $for-loop|0393 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -53192,7 +51518,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53200,115 +51526,115 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6096 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|0548 - local.get $0 + loop $for-loop|0397 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6096 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0548 + local.set $1 + br $for-loop|0397 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0551 - loop $for-loop|0556 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0399 + loop $for-loop|0403 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6128 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0551 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0399 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0556 + local.set $1 + br $for-loop|0403 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -53323,7 +51649,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53331,41 +51657,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 6160 i32.store $0 offset=4 - local.get $3 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|0562 - local.get $0 + loop $for-loop|0407 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53374,47 +51700,47 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6160 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0562 + local.set $1 + br $for-loop|0407 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 6192 i32.store $0 offset=4 - local.get $3 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0565 - loop $for-loop|0570 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0409 + loop $for-loop|0413 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53423,23 +51749,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6192 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0565 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0409 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0570 + local.set $1 + br $for-loop|0413 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -53454,7 +51780,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53462,41 +51788,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 6224 i32.store $0 offset=4 - local.get $3 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0576 - local.get $0 + loop $for-loop|0417 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53505,47 +51831,47 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6224 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0576 + local.set $1 + br $for-loop|0417 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 6256 i32.store $0 offset=4 - local.get $3 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0579 - loop $for-loop|0584 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0419 + loop $for-loop|0423 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53554,23 +51880,23 @@ i32.const 3 global.set $~argumentsLength local.get $11 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6256 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0579 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0419 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0584 + local.set $1 + br $for-loop|0423 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -53585,7 +51911,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53593,41 +51919,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6288 i32.store $0 offset=4 - local.get $3 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0590 - local.get $0 + loop $for-loop|0427 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -53636,47 +51962,47 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6288 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0590 + local.set $1 + br $for-loop|0427 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 6320 i32.store $0 offset=4 - local.get $3 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0593 - loop $for-loop|0598 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0429 + loop $for-loop|0433 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -53685,23 +52011,23 @@ i32.const 3 global.set $~argumentsLength local.get $6 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6320 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0593 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0429 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0598 + local.set $1 + br $for-loop|0433 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -53716,7 +52042,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53724,41 +52050,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store $0 - local.get $3 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 6352 i32.store $0 offset=4 - local.get $3 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0604 - local.get $0 + loop $for-loop|0437 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53767,47 +52093,47 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6352 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0604 + local.set $1 + br $for-loop|0437 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store $0 offset=4 - local.get $3 + local.get $2 i32.load $0 offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0607 - loop $for-loop|0612 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0439 + loop $for-loop|0443 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53816,23 +52142,23 @@ i32.const 3 global.set $~argumentsLength local.get $10 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6384 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0607 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0439 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0612 + local.set $1 + br $for-loop|0443 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner11 @@ -53847,7 +52173,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53855,17 +52181,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set @@ -53873,86 +52199,86 @@ global.get $~lib/memory/__stack_pointer i32.const 6416 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0618 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0447 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6416 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0618 + local.set $1 + br $for-loop|0447 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0621 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0449 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6448 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0626 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0453 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6448 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0621 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0449 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0626 + local.set $1 + br $for-loop|0453 end end i32.const 1 @@ -53969,7 +52295,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53977,17 +52303,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set @@ -53995,86 +52321,86 @@ global.get $~lib/memory/__stack_pointer i32.const 6480 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0632 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0458 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6480 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0632 + local.set $1 + br $for-loop|0458 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0635 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0461 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6512 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0640 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0465 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6512 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0635 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0461 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0640 + local.set $1 + br $for-loop|0465 end end i32.const 1 @@ -54091,7 +52417,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54099,104 +52425,104 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0643 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0468 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6544 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0648 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0472 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6544 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0643 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0468 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0648 + local.set $1 + br $for-loop|0472 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0651 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0475 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6576 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0656 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0479 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6576 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0651 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0475 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0656 + local.set $1 + br $for-loop|0479 end end i32.const 1 @@ -54213,7 +52539,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54221,17 +52547,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set @@ -54239,94 +52565,94 @@ global.get $~lib/memory/__stack_pointer i32.const 6608 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0662 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0484 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6608 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0662 + local.set $1 + br $for-loop|0484 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0665 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0487 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6640 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0670 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0491 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6640 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0665 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0487 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0670 + local.set $1 + br $for-loop|0491 end end i32.const 1 @@ -54343,7 +52669,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54351,17 +52677,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set @@ -54369,94 +52695,94 @@ global.get $~lib/memory/__stack_pointer i32.const 6672 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0676 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0496 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6672 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0676 + local.set $1 + br $for-loop|0496 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0679 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0499 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6704 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0684 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0503 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6704 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0679 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0499 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0684 + local.set $1 + br $for-loop|0503 end end i32.const 1 @@ -54473,7 +52799,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54481,17 +52807,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set @@ -54499,94 +52825,94 @@ global.get $~lib/memory/__stack_pointer i32.const 6736 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0690 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0508 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6736 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0690 + local.set $1 + br $for-loop|0508 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0693 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0511 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6768 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0698 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0515 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6768 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0693 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0511 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0698 + local.set $1 + br $for-loop|0515 end end i32.const 1 @@ -54603,7 +52929,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54611,17 +52937,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $4 i32.store $0 - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set @@ -54629,94 +52955,94 @@ global.get $~lib/memory/__stack_pointer i32.const 6800 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0704 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0520 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6800 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0704 + local.set $1 + br $for-loop|0520 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0707 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0523 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6832 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0712 - local.get $0 - local.get $3 + local.set $2 + loop $for-loop|0527 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 6832 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0707 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0523 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0712 + local.set $1 + br $for-loop|0527 end end i32.const 1 @@ -54733,7 +53059,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54741,17 +53067,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set @@ -54759,23 +53085,23 @@ global.get $~lib/memory/__stack_pointer i32.const 6864 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0718 + local.set $0 + loop $for-loop|0532 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -54785,46 +53111,46 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6864 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0718 + local.set $1 + br $for-loop|0532 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0721 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0535 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6896 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0726 + local.set $0 + loop $for-loop|0539 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -54834,19 +53160,19 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6896 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0721 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0535 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0726 + local.set $1 + br $for-loop|0539 end end i32.const 1 @@ -54863,7 +53189,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -54871,17 +53197,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set @@ -54889,23 +53215,23 @@ global.get $~lib/memory/__stack_pointer i32.const 6928 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0732 + local.set $0 + loop $for-loop|0544 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -54915,46 +53241,46 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6928 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0732 + local.set $1 + br $for-loop|0544 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0735 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0547 (result i32) global.get $~lib/memory/__stack_pointer i32.const 6960 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0740 + local.set $0 + loop $for-loop|0551 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -54964,19 +53290,19 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6960 i32.load $0 call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0735 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0547 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0740 + local.set $1 + br $for-loop|0551 end end i32.const 1 @@ -54993,7 +53319,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55001,17 +53327,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set @@ -55019,23 +53345,23 @@ global.get $~lib/memory/__stack_pointer i32.const 6992 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|0746 + local.set $0 + loop $for-loop|0556 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -55045,46 +53371,46 @@ global.set $~argumentsLength i32.const 0 local.get $6 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6992 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0746 + local.set $1 + br $for-loop|0556 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0749 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0559 (result i32) global.get $~lib/memory/__stack_pointer i32.const 7024 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|0754 + local.set $0 + loop $for-loop|0563 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -55094,19 +53420,19 @@ global.set $~argumentsLength i32.const 0 local.get $6 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 7024 i32.load $0 call_indirect $0 (type $f32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0749 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0559 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0754 + local.set $1 + br $for-loop|0563 end end i32.const 1 @@ -55123,7 +53449,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55131,17 +53457,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store $0 - local.get $4 + local.get $3 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set @@ -55149,23 +53475,23 @@ global.get $~lib/memory/__stack_pointer i32.const 7056 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0760 + local.set $0 + loop $for-loop|0568 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $3 - local.get $0 + local.get $2 + local.get $1 i32.const 3 i32.shl i32.add @@ -55175,75 +53501,582 @@ global.set $~argumentsLength i32.const 0 local.get $10 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 7056 i32.load $0 call_indirect $0 (type $f64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0760 + local.set $1 + br $for-loop|0568 end end i32.const 1 end i32.eqz br_if $folding-inner12 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0763 (result i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0571 (result i32) global.get $~lib/memory/__stack_pointer i32.const 7088 i32.store $0 offset=4 - local.get $4 + local.get $3 i32.load $0 offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - loop $for-loop|0768 + local.set $0 + loop $for-loop|0575 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.set $10 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $10 + local.get $1 + local.get $3 + i32.const 7088 + i32.load $0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0571 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0575 + end + end + i32.const 1 + end + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 + i32.store $0 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + local.set $2 + loop $for-loop|0580 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_s $0 + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $4 + i32.const 7200 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0580 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store $0 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7232 + i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + local.set $2 + loop $for-loop|0584 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_u $0 + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $4 + i32.const 7232 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0584 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 + i32.store $0 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 7264 + i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + local.set $2 + loop $for-loop|0590 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_u $0 + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $4 + i32.const 7264 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0590 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store $0 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|0594 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + local.set $0 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $4 + i32.const 7296 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0594 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 + i32.store $0 + local.get $4 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store $0 offset=4 + local.get $4 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store $0 offset=8 + local.get $4 + i32.load $0 offset=4 + local.set $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load $0 offset=8 + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|0598 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u $0 + local.set $0 + i32.const 3 + global.set $~argumentsLength local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load $0 - local.set $10 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $10 - local.get $0 - local.get $4 - i32.const 7088 - i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0763 - drop - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0768 - end + local.get $1 + local.get $4 + i32.const 7328 + i32.load $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0598 end - i32.const 1 end - br_if $folding-inner13 + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -55253,7 +54086,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55265,75 +54098,76 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $5 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 i32.store $0 - local.get $5 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7200 + i32.const 7360 i32.store $0 offset=8 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0774 - local.get $0 - local.get $3 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0602 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $3 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_s $0 - local.set $2 + i32.load $0 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 - i32.const 7200 + local.get $1 + local.get $4 + i32.const 7360 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0774 + local.set $1 + br $for-loop|0602 end end global.get $std/typedarray/forEachCallCount @@ -55351,7 +54185,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55363,78 +54197,76 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 i32.store $0 - local.get $5 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7232 + i32.const 7392 i32.store $0 offset=8 - local.get $5 + local.get $4 i32.load $0 offset=4 - local.set $4 + local.set $3 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $4 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0780 - local.get $0 - local.get $3 + i32.const 2 + i32.shr_u + local.set $2 + loop $for-loop|0606 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $4 + local.get $3 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_u $0 - local.set $2 + i32.load $0 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $0 - local.get $5 - i32.const 7232 + local.get $1 + local.get $4 + i32.const 7392 i32.load $0 call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0780 + local.set $1 + br $for-loop|0606 end end global.get $std/typedarray/forEachCallCount @@ -55452,7 +54284,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55464,78 +54296,79 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store $0 - local.get $5 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7264 + i32.const 7424 i32.store $0 offset=8 - local.get $5 + local.get $3 i32.load $0 offset=4 - local.set $4 + local.set $2 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $3 i32.load $0 offset=8 - local.set $3 - loop $for-loop|0788 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0610 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.get $4 + local.get $2 + local.get $1 + i32.const 3 + i32.shl i32.add - i32.load8_u $0 - local.set $2 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $5 - i32.const 7264 + local.get $11 + local.get $1 + local.get $3 + i32.const 7424 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0788 + local.set $1 + br $for-loop|0610 end end global.get $std/typedarray/forEachCallCount @@ -55553,7 +54386,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55565,79 +54398,79 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 i32.store $0 - local.get $5 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7296 + i32.const 7456 i32.store $0 offset=8 - local.get $5 + local.get $3 i32.load $0 offset=4 - local.set $4 + local.set $2 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $3 i32.load $0 offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $3 - loop $for-loop|0794 + local.set $0 + loop $for-loop|0614 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $4 - local.get $0 - i32.const 1 + local.get $2 + local.get $1 + i32.const 3 i32.shl i32.add - i32.load16_s $0 - local.set $2 + i64.load $0 + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $5 - i32.const 7296 + local.get $11 + local.get $1 + local.get $3 + i32.const 7456 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0794 + local.set $1 + br $for-loop|0614 end end global.get $std/typedarray/forEachCallCount @@ -55655,7 +54488,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55667,82 +54500,79 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store $0 - local.get $5 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7328 + i32.const 7488 i32.store $0 offset=8 - local.get $5 + local.get $3 i32.load $0 offset=4 - local.set $4 + local.set $2 i32.const 0 - local.set $0 - local.get $5 + local.set $1 + local.get $3 i32.load $0 offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|0800 + local.set $0 + loop $for-loop|0618 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $4 - local.get $0 - i32.const 1 + local.get $2 + local.get $1 + i32.const 2 i32.shl i32.add - i32.load16_u $0 - local.set $2 + f32.load $0 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $5 - i32.const 7328 + local.get $6 + local.get $1 + local.get $3 + i32.const 7488 i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + call_indirect $0 (type $f32_i32_i32_=>_none) + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0800 + local.set $1 + br $for-loop|0618 end end global.get $std/typedarray/forEachCallCount @@ -55760,7 +54590,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55772,595 +54602,972 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $5 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 i32.store $0 - local.get $5 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store $0 offset=4 - local.get $5 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7360 + i32.const 7520 i32.store $0 offset=8 - local.get $5 + local.get $3 i32.load $0 offset=4 - local.set $4 + local.set $2 + i32.const 0 + local.set $1 + local.get $3 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0622 + local.get $0 + local.get $1 + i32.gt_s + if + local.get $2 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load $0 + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $10 + local.get $1 + local.get $3 + i32.const 7520 + i32.load $0 + call_indirect $0 (type $f64_i32_i32_=>_none) + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0622 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.const 20 + memory.fill $0 + local.get $0 + i32.const 7616 + i32.store $0 + local.get $0 + i32.const 7628 + i32.load $0 + local.tee $3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store $0 offset=8 + i32.const 0 + local.set $0 + loop $for-loop|0624 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0624 + end + end + local.get $1 + call $~lib/typedarray/Int8Array#reverse + drop i32.const 0 local.set $0 - local.get $5 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|0806 + loop $for-loop|1 local.get $0 local.get $3 i32.lt_s if - local.get $4 + local.get $1 local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $2 - i32.const 3 - global.set $~argumentsLength - local.get $2 + call $~lib/typedarray/Int8Array#__get + i32.const 7616 + local.get $3 + i32.const 1 + i32.sub local.get $0 - local.get $5 - i32.const 7360 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) + i32.sub + call $~lib/array/Array#__get + i32.extend8_s + i32.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0806 + br $for-loop|1 end end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.set $1 + local.get $2 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=12 + local.get $1 + local.get $0 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 8 + i32.ne + br_if $folding-inner16 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 7 + i32.ne + br_if $folding-inner17 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 6 + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 3 + call $~lib/typedarray/Int8Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i32.const 0 - i32.store $0 offset=8 i32.const 0 - global.set $std/typedarray/forEachCallCount + i32.const 20 + memory.fill $0 local.get $0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + i32.const 7616 i32.store $0 - local.get $5 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $5 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $0 + i32.const 7628 + i32.load $0 + local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store $0 offset=4 - local.get $5 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7392 + local.get $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store $0 offset=8 - local.get $5 - i32.load $0 offset=4 - local.set $4 i32.const 0 local.set $0 - local.get $5 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|0812 + loop $for-loop|0628 local.get $0 local.get $3 i32.lt_s if - local.get $4 + local.get $1 local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.set $2 - i32.const 3 - global.set $~argumentsLength + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $2 local.get $0 - local.get $5 - i32.const 7392 - i32.load $0 - call_indirect $0 (type $i32_i32_i32_=>_none) + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0812 + br $for-loop|0628 end end - global.get $std/typedarray/forEachCallCount + local.get $1 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1629 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + i32.const 7616 + local.get $3 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + br_if $folding-inner15 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1629 + end + end + global.get $~lib/memory/__stack_pointer + local.set $1 + local.get $2 + i32.const 8 + call $~lib/typedarray/Uint8Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=12 + local.get $1 + local.get $0 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 + i32.ne + br_if $folding-inner16 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 + i32.ne + br_if $folding-inner17 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 3 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 i32.const 0 - i32.store $0 offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount + i32.const 20 + memory.fill $0 local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 + i32.const 7616 i32.store $0 - local.get $4 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $0 + i32.const 7628 + i32.load $0 + local.tee $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 i32.store $0 offset=4 - local.get $4 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store $0 offset=8 - local.get $4 - i32.load $0 offset=4 - local.set $3 i32.const 0 local.set $0 - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.set $2 - loop $for-loop|0818 + loop $for-loop|0633 local.get $0 - local.get $2 + local.get $3 i32.lt_s if - local.get $3 + local.get $1 local.get $0 - i32.const 3 - i32.shl + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 i32.add - i64.load $0 - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 + local.set $0 + br $for-loop|0633 + end + end + local.get $1 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1634 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 local.get $0 - local.get $4 - i32.const 7424 - i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_none) + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7616 + local.get $3 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0818 + br $for-loop|1634 end end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.set $1 + local.get $2 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=12 + local.get $1 + local.get $0 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.ne + br_if $folding-inner16 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 + i32.ne + br_if $folding-inner17 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6 + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i32.const 0 - i32.store $0 offset=8 i32.const 0 - global.set $std/typedarray/forEachCallCount + i32.const 20 + memory.fill $0 local.get $0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + i32.const 7616 i32.store $0 - local.get $4 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $0 + i32.const 7628 + i32.load $0 + local.tee $3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 i32.store $0 offset=4 - local.get $4 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7456 + local.get $3 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store $0 offset=8 - local.get $4 - i32.load $0 offset=4 - local.set $3 i32.const 0 local.set $0 - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.set $2 - loop $for-loop|0824 + loop $for-loop|0638 local.get $0 - local.get $2 + local.get $3 i32.lt_s if - local.get $3 + local.get $1 local.get $0 - i32.const 3 - i32.shl + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 i32.add - i64.load $0 - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 + local.set $0 + br $for-loop|0638 + end + end + local.get $1 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1639 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 local.get $0 - local.get $4 - i32.const 7456 - i32.load $0 - call_indirect $0 (type $i64_i32_i32_=>_none) + call $~lib/typedarray/Int16Array#__get + i32.const 7616 + local.get $3 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.extend16_s + i32.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0824 + br $for-loop|1639 end end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.set $1 + local.get $2 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=12 + local.get $1 + local.get $0 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner16 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner17 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 3 + call $~lib/typedarray/Int16Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 - i32.const 0 - i32.store $0 offset=8 i32.const 0 - global.set $std/typedarray/forEachCallCount + i32.const 20 + memory.fill $0 local.get $0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $4 + i32.const 7616 i32.store $0 - local.get $4 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $0 + i32.const 7628 + i32.load $0 + local.tee $3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 i32.store $0 offset=4 - local.get $4 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7488 + local.get $3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 i32.store $0 offset=8 - local.get $4 - i32.load $0 offset=4 - local.set $3 i32.const 0 local.set $0 - local.get $4 - i32.load $0 offset=8 - i32.const 2 - i32.shr_u - local.set $2 - loop $for-loop|0830 + loop $for-loop|0643 local.get $0 - local.get $2 + local.get $3 i32.lt_s if - local.get $3 + local.get $1 local.get $0 - i32.const 2 - i32.shl + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 i32.add - f32.load $0 - local.set $6 - i32.const 3 - global.set $~argumentsLength - local.get $6 + local.set $0 + br $for-loop|0643 + end + end + local.get $1 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1644 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $1 local.get $0 - local.get $4 - i32.const 7488 - i32.load $0 - call_indirect $0 (type $f32_i32_i32_=>_none) + call $~lib/typedarray/Uint16Array#__get + i32.const 7616 + local.get $3 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0830 + br $for-loop|1644 end end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.set $1 + local.get $2 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store $0 offset=12 + local.get $1 + local.get $0 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store $0 offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner16 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner17 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store $0 - local.get $0 i32.const 0 - i32.store $0 offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount + i32.const 20 + memory.fill $0 local.get $0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $4 + i32.const 7616 i32.store $0 - local.get $4 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store $0 offset=4 - local.get $4 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $0 + i32.const 7628 + i32.load $0 + local.tee $9 + call $~lib/typedarray/Int32Array#constructor + local.tee $8 i32.store $0 offset=4 - local.get $4 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7520 + local.get $9 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 i32.store $0 offset=8 - local.get $4 - i32.load $0 offset=4 - local.set $3 i32.const 0 local.set $0 - local.get $4 - i32.load $0 offset=8 - i32.const 3 - i32.shr_u - local.set $2 - loop $for-loop|0836 + loop $for-loop|0648 local.get $0 - local.get $2 + local.get $9 i32.lt_s if - local.get $3 + local.get $8 local.get $0 - i32.const 3 - i32.shl + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $7 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 i32.add - f64.load $0 - local.set $10 - i32.const 3 - global.set $~argumentsLength - local.get $10 + local.set $0 + br $for-loop|0648 + end + end + i32.const 0 + local.set $0 + local.get $8 + i32.load $0 offset=4 + local.set $5 + local.get $8 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|0 local.get $0 local.get $4 - i32.const 7520 - i32.load $0 - call_indirect $0 (type $f64_i32_i32_=>_none) + i32.lt_u + if + local.get $5 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 + local.set $2 + local.get $1 + local.get $5 + local.get $3 + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 + i32.store $0 + local.get $1 + local.get $2 + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1649 + local.get $0 + local.get $9 + i32.lt_s + if + local.get $8 + local.get $0 + call $~lib/typedarray/Int32Array#__get + i32.const 7616 + local.get $9 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0836 + br $for-loop|1649 end end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.set $8 + local.get $7 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store $0 offset=12 + i32.const 0 + local.set $0 + local.get $7 + i32.load $0 offset=4 + local.set $5 + local.get $7 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|025 + local.get $0 + local.get $4 + i32.lt_u + if + local.get $5 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 + local.set $2 + local.get $1 + local.get $5 + local.get $3 + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 + i32.store $0 + local.get $1 + local.get $2 + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|025 + end + end + end + local.get $8 + local.get $7 + i32.store $0 offset=16 + local.get $7 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne + br_if $folding-inner16 + local.get $7 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne + br_if $folding-inner17 + local.get $7 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne + br_if $folding-inner18 + local.get $7 i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56368,128 +55575,231 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 + local.get $0 i32.const 7616 i32.store $0 - local.get $2 + local.get $0 i32.const 7628 i32.load $0 - local.tee $4 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $9 + call $~lib/typedarray/Uint32Array#constructor + local.tee $8 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.get $9 + call $~lib/typedarray/Uint32Array#constructor + local.tee $7 i32.store $0 offset=8 - loop $for-loop|05 + i32.const 0 + local.set $0 + loop $for-loop|0653 local.get $0 - local.get $4 + local.get $9 i32.lt_s if - local.get $2 + local.get $8 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $3 + call $~lib/typedarray/Uint32Array#__set + local.get $7 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|0653 + end + end + i32.const 0 + local.set $0 + local.get $8 + i32.load $0 offset=4 + local.set $5 + local.get $8 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|027 + local.get $0 + local.get $4 + i32.lt_u + if + local.get $5 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 + local.set $2 + local.get $1 + local.get $5 + local.get $3 + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 + i32.store $0 + local.get $1 + local.get $2 + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|027 + end end end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 local.set $0 - loop $for-loop|1 + loop $for-loop|1654 local.get $0 - local.get $4 + local.get $9 i32.lt_s if - local.get $2 + local.get $8 local.get $0 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 7616 - local.get $4 + local.get $9 i32.const 1 i32.sub local.get $0 i32.sub call $~lib/array/Array#__get - i32.extend8_s i32.ne - br_if $folding-inner24 + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|1 + br $for-loop|1654 end end global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $3 - i32.const 4 + local.set $8 + local.get $7 i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $0 + call $~lib/typedarray/Uint32Array#subarray + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store $0 offset=12 - local.get $2 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 + i32.const 0 + local.set $0 + local.get $7 + i32.load $0 offset=4 + local.set $5 + local.get $7 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $4 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|029 + local.get $0 + local.get $4 + i32.lt_u + if + local.get $5 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 + local.set $2 + local.get $1 + local.get $5 + local.get $3 + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load $0 + i32.store $0 + local.get $1 + local.get $2 + i32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|029 + end + end + end + local.get $8 + local.get $7 i32.store $0 offset=16 - local.get $0 + local.get $7 i32.const 0 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 8 i32.ne - br_if $folding-inner25 - local.get $0 + br_if $folding-inner16 + local.get $7 i32.const 1 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 7 i32.ne - br_if $folding-inner26 - local.get $0 + br_if $folding-inner17 + local.get $7 i32.const 2 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 6 i32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner18 + local.get $7 i32.const 3 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 5 i32.ne - br_if $folding-inner28 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56497,130 +55807,234 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 + local.get $0 i32.const 7616 i32.store $0 - local.get $2 + local.get $0 i32.const 7628 i32.load $0 - local.tee $4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $8 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.get $8 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 i32.store $0 offset=8 - loop $for-loop|0633 + i32.const 0 + local.set $0 + loop $for-loop|0658 local.get $0 - local.get $4 + local.get $8 i32.lt_s if - local.get $2 + local.get $7 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $3 + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $5 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0633 + br $for-loop|0658 end end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 local.set $0 - loop $for-loop|17 + local.get $7 + i32.load $0 offset=4 + local.set $4 + local.get $7 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|030 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load $0 + local.set $11 + local.get $1 + local.get $4 + local.get $2 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load $0 + i64.store $0 + local.get $1 + local.get $11 + i64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|030 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1659 local.get $0 - local.get $4 + local.get $8 i32.lt_s if - local.get $2 + local.get $7 local.get $0 - call $~lib/typedarray/Uint8Array#__get + call $~lib/typedarray/Int64Array#__get i32.const 7616 - local.get $4 + local.get $8 i32.const 1 i32.sub local.get $0 i32.sub call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner24 + i64.extend_i32_s + i64.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|17 + br $for-loop|1659 end end global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $3 + local.set $7 + local.get $5 i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.set $0 + call $~lib/typedarray/Int64Array#subarray + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store $0 offset=12 - local.get $2 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 + i32.const 0 + local.set $0 + local.get $5 + i32.load $0 offset=4 + local.set $4 + local.get $5 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|032 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load $0 + local.set $11 + local.get $1 + local.get $4 + local.get $2 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load $0 + i64.store $0 + local.get $1 + local.get $11 + i64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|032 + end + end + end + local.get $7 + local.get $5 i32.store $0 offset=16 - local.get $0 + local.get $5 i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.ne - br_if $folding-inner25 - local.get $0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne + br_if $folding-inner16 + local.get $5 i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.ne - br_if $folding-inner26 - local.get $0 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne + br_if $folding-inner17 + local.get $5 i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.ne - br_if $folding-inner27 - local.get $0 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne + br_if $folding-inner18 + local.get $5 i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.ne - br_if $folding-inner28 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56628,130 +56042,234 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 + local.get $0 i32.const 7616 i32.store $0 - local.get $2 + local.get $0 i32.const 7628 i32.load $0 - local.tee $4 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $8 + call $~lib/typedarray/Uint64Array#constructor + local.tee $7 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.get $8 + call $~lib/typedarray/Uint64Array#constructor + local.tee $5 i32.store $0 offset=8 - loop $for-loop|08 + i32.const 0 + local.set $0 + loop $for-loop|0663 local.get $0 - local.get $4 + local.get $8 i32.lt_s if - local.get $2 + local.get $7 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $5 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|08 + br $for-loop|0663 + end + end + i32.const 0 + local.set $0 + local.get $7 + i32.load $0 offset=4 + local.set $4 + local.get $7 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|034 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load $0 + local.set $11 + local.get $1 + local.get $4 + local.get $2 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load $0 + i64.store $0 + local.get $1 + local.get $11 + i64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|034 + end end end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 local.set $0 - loop $for-loop|19 + loop $for-loop|1664 local.get $0 - local.get $4 + local.get $8 i32.lt_s if - local.get $2 + local.get $7 local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get + call $~lib/typedarray/Uint64Array#__get i32.const 7616 - local.get $4 + local.get $8 i32.const 1 i32.sub local.get $0 i32.sub call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner24 + i64.extend_i32_s + i64.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|19 + br $for-loop|1664 end end global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $3 + local.set $7 + local.get $5 i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $0 + call $~lib/typedarray/Uint64Array#subarray + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store $0 offset=12 - local.get $2 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 + i32.const 0 + local.set $0 + local.get $5 + i32.load $0 offset=4 + local.set $4 + local.get $5 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|036 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load $0 + local.set $11 + local.get $1 + local.get $4 + local.get $2 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load $0 + i64.store $0 + local.get $1 + local.get $11 + i64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|036 + end + end + end + local.get $7 + local.get $5 i32.store $0 offset=16 - local.get $0 + local.get $5 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.ne - br_if $folding-inner25 - local.get $0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne + br_if $folding-inner16 + local.get $5 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 - i32.ne - br_if $folding-inner26 - local.get $0 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne + br_if $folding-inner17 + local.get $5 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 - i32.ne - br_if $folding-inner27 - local.get $0 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne + br_if $folding-inner18 + local.get $5 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.ne - br_if $folding-inner28 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56759,127 +56277,234 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 + local.get $0 i32.const 7616 i32.store $0 - local.get $2 + local.get $0 i32.const 7628 i32.load $0 - local.tee $4 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $8 + call $~lib/typedarray/Float32Array#constructor + local.tee $7 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.get $8 + call $~lib/typedarray/Float32Array#constructor + local.tee $5 i32.store $0 offset=8 - loop $for-loop|010 + i32.const 0 + local.set $0 + loop $for-loop|0668 local.get $0 - local.get $4 + local.get $8 i32.lt_s if - local.get $2 + local.get $7 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $3 + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $5 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|010 + br $for-loop|0668 end end - local.get $2 - call $~lib/typedarray/Int16Array#reverse - drop i32.const 0 local.set $0 - loop $for-loop|111 + local.get $7 + i32.load $0 offset=4 + local.set $4 + local.get $7 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|037 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load $0 + local.set $6 + local.get $1 + local.get $4 + local.get $2 + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load $0 + f32.store $0 + local.get $1 + local.get $6 + f32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|037 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1669 local.get $0 - local.get $4 + local.get $8 i32.lt_s if - local.get $2 + local.get $7 local.get $0 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Float32Array#__get i32.const 7616 - local.get $4 + local.get $8 i32.const 1 i32.sub local.get $0 i32.sub call $~lib/array/Array#__get - i32.extend16_s - i32.ne - br_if $folding-inner24 + f32.convert_i32_s + f32.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|111 + br $for-loop|1669 end end global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $3 + local.set $7 + local.get $5 i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $0 + call $~lib/typedarray/Float32Array#subarray + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store $0 offset=12 - local.get $2 - local.get $0 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 + i32.const 0 + local.set $0 + local.get $5 + i32.load $0 offset=4 + local.set $4 + local.get $5 + i32.load $0 offset=8 + i32.const 2 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|039 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load $0 + local.set $6 + local.get $1 + local.get $4 + local.get $2 + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load $0 + f32.store $0 + local.get $1 + local.get $6 + f32.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|039 + end + end + end + local.get $7 + local.get $5 i32.store $0 offset=16 - local.get $0 + local.get $5 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.ne - br_if $folding-inner25 - local.get $0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne + br_if $folding-inner16 + local.get $5 i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 - i32.ne - br_if $folding-inner26 - local.get $0 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne + br_if $folding-inner17 + local.get $5 i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 - i32.ne - br_if $folding-inner27 - local.get $0 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne + br_if $folding-inner18 + local.get $5 i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.ne - br_if $folding-inner28 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56887,134 +56512,235 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.const 20 memory.fill $0 - local.get $2 + local.get $0 i32.const 7616 i32.store $0 - local.get $2 + local.get $0 i32.const 7628 i32.load $0 - local.tee $4 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $8 + call $~lib/typedarray/Float64Array#constructor + local.tee $7 i32.store $0 offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.get $8 + call $~lib/typedarray/Float64Array#constructor + local.tee $5 i32.store $0 offset=8 - loop $for-loop|01234 + i32.const 0 + local.set $0 + loop $for-loop|0673 local.get $0 - local.get $4 + local.get $8 i32.lt_s if - local.get $2 + local.get $7 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $3 + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $5 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|01234 + br $for-loop|0673 + end + end + i32.const 0 + local.set $0 + local.get $7 + i32.load $0 offset=4 + local.set $4 + local.get $7 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|040 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load $0 + local.set $10 + local.get $1 + local.get $4 + local.get $2 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load $0 + f64.store $0 + local.get $1 + local.get $10 + f64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|040 + end end end - local.get $2 - call $~lib/typedarray/Int16Array#reverse - drop i32.const 0 local.set $0 - loop $for-loop|113 + loop $for-loop|1674 local.get $0 - local.get $4 + local.get $8 i32.lt_s if - local.get $2 + local.get $7 local.get $0 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Float64Array#__get i32.const 7616 - local.get $4 + local.get $8 i32.const 1 i32.sub local.get $0 i32.sub call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne - br_if $folding-inner24 + f64.convert_i32_s + f64.ne + br_if $folding-inner15 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|113 + br $for-loop|1674 end end global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $3 + local.set $7 + local.get $5 + i32.const 4 i32.const 8 - call $~lib/typedarray/Uint16Array#subarray - local.set $0 + call $~lib/typedarray/Float64Array#subarray + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store $0 offset=12 - local.get $2 - local.get $0 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 + i32.const 0 + local.set $0 + local.get $5 + i32.load $0 offset=4 + local.set $4 + local.get $5 + i32.load $0 offset=8 + i32.const 3 + i32.shr_u + local.tee $1 + i32.const 1 + i32.gt_u + if + local.get $1 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|042 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load $0 + local.set $10 + local.get $1 + local.get $4 + local.get $2 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load $0 + f64.store $0 + local.get $1 + local.get $10 + f64.store $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|042 + end + end + end + local.get $7 + local.get $5 i32.store $0 offset=16 - local.get $0 + local.get $5 i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 8 - i32.ne - br_if $folding-inner25 - local.get $0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne + br_if $folding-inner16 + local.get $5 i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 7 - i32.ne - br_if $folding-inner26 - local.get $0 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne + br_if $folding-inner17 + local.get $5 i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 6 - i32.ne - br_if $folding-inner27 - local.get $0 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne + br_if $folding-inner18 + local.get $5 i32.const 3 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.ne - br_if $folding-inner28 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - 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> @@ -57035,8 +56761,10 @@ i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set - i32.const -1 + i32.const 0 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $4 i32.load $0 offset=8 @@ -57044,22 +56772,18 @@ i32.shr_u local.tee $3 i32.eqz - local.get $3 - i32.const 0 - i32.le_s - i32.or br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $4 i32.load $0 offset=4 local.set $2 - loop $while-continue|0 - local.get $1 + loop $while-continue|043 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -57067,17 +56791,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|0 + local.set $0 + br $while-continue|043 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -57090,7 +56814,7 @@ end block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.get $4 i32.load $0 offset=8 @@ -57098,22 +56822,19 @@ i32.shr_u local.tee $2 i32.eqz - local.get $2 - i32.eqz - i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop local.get $4 i32.load $0 offset=4 - local.set $1 - loop $while-continue|014 - local.get $0 + local.set $0 + loop $while-continue|044 + local.get $1 local.get $2 i32.lt_s if i32.const 1 - local.get $1 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -57123,11 +56844,11 @@ f64.ne br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|044 end end i32.const 0 @@ -57151,9 +56872,9 @@ f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $4 i32.load $0 offset=8 @@ -57161,22 +56882,18 @@ i32.shr_u local.tee $3 i32.eqz - local.get $3 - i32.const 0 - i32.le_s - i32.or br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $4 i32.load $0 offset=4 local.set $2 - loop $while-continue|015 - local.get $1 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -57184,17 +56901,17 @@ f32.const nan:0x400000 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -57207,7 +56924,7 @@ end block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.get $4 i32.load $0 offset=8 @@ -57215,22 +56932,19 @@ i32.shr_u local.tee $2 i32.eqz - local.get $2 - i32.eqz - i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop local.get $4 i32.load $0 offset=4 - local.set $1 - loop $while-continue|0845 - local.get $0 + local.set $0 + loop $while-continue|0682 + local.get $1 local.get $2 i32.lt_s if i32.const 1 - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -57240,11 +56954,11 @@ f32.ne br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|0845 + local.set $1 + br $while-continue|0682 end end i32.const 0 @@ -57265,7 +56979,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57314,7 +57028,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57322,7 +57036,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -57347,7 +57061,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57359,7 +57073,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57408,7 +57122,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 local.get $1 call $~lib/typedarray/Uint8Array#toString local.set $1 @@ -57423,7 +57137,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57435,7 +57149,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57484,7 +57198,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 local.get $1 call $~lib/typedarray/Uint8Array#toString local.set $1 @@ -57499,7 +57213,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57511,7 +57225,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57560,7 +57274,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57568,7 +57282,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -57593,7 +57307,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57605,7 +57319,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57654,7 +57368,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57662,7 +57376,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -57687,7 +57401,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57699,7 +57413,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57748,7 +57462,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57756,7 +57470,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -57781,7 +57495,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57793,7 +57507,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57842,7 +57556,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57850,7 +57564,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -57875,7 +57589,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57887,7 +57601,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57936,7 +57650,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57944,7 +57658,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -57969,7 +57683,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -57981,7 +57695,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58030,7 +57744,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58038,7 +57752,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58063,7 +57777,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -58075,7 +57789,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58124,7 +57838,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner17 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58132,7 +57846,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58157,7 +57871,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner18 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -58169,7 +57883,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58218,7 +57932,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner17 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58226,7 +57940,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58251,7 +57965,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner18 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -58302,8 +58016,6 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58311,7 +58023,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58327,264 +58039,25 @@ call $~lib/typedarray/Int8Array#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|036 - local.get $5 - local.get $9 - i32.gt_s - if - local.get $4 - local.get $9 - i32.const 10928 - local.get $9 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|036 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $4 - i32.load $0 - local.tee $0 - i32.store $0 offset=8 - local.get $1 - local.get $0 - local.get $4 - i32.load $0 offset=4 - local.get $4 - i32.load $0 - i32.sub - local.tee $0 - local.get $4 - i32.load $0 offset=8 - local.get $0 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 - i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.store $0 - local.get $3 - i32.const 20 - i32.sub - i32.load $0 offset=16 local.set $1 - local.get $0 - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store $0 - local.get $0 - local.get $3 - i32.store $0 - local.get $3 - if - local.get $0 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $1 - i32.store $0 offset=8 - local.get $0 - local.get $3 - i32.store $0 offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $0 - i32.store $0 offset=16 - i32.const 0 - local.set $9 - loop $for-loop|138 + loop $for-loop|0704 + local.get $1 local.get $5 - local.get $9 - i32.gt_s - if - local.get $4 - local.get $9 - call $~lib/typedarray/Int8Array#__get - local.get $0 - local.get $9 - call $~lib/typedarray/Int8Array#__get - i32.ne - br_if $folding-inner29 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|138 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $0 - i32.const 10928 - i32.store $0 - local.get $0 - i32.const 10940 - i32.load $0 - local.tee $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store $0 offset=4 - i32.const 0 - local.set $0 - loop $for-loop|0865 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 10928 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0865 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.load $0 - local.tee $0 - i32.store $0 offset=8 - local.get $1 - local.get $0 - local.get $2 - i32.load $0 offset=4 - local.get $2 - i32.load $0 - i32.sub - local.tee $0 - local.get $2 - i32.load $0 offset=8 - local.get $0 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store $0 offset=12 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $1 - i32.store $0 offset=16 - i32.const 0 - local.set $0 - loop $for-loop|116 - local.get $0 - local.get $3 i32.lt_s - if - local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - local.get $1 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - i32.ne - br_if $folding-inner29 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|116 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.const 20 - memory.fill $0 - local.get $0 - i32.const 10928 - i32.store $0 - local.get $0 - i32.const 10940 - i32.load $0 - local.tee $5 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 - i32.store $0 offset=4 - loop $for-loop|041 - local.get $5 - local.get $9 - i32.gt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|041 + local.set $1 + br $for-loop|0704 end end global.get $~lib/memory/__stack_pointer @@ -58608,18 +58081,18 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58631,7 +58104,7 @@ local.set $1 local.get $0 i32.const 12 - i32.const 6 + i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -58658,33 +58131,131 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|143 + local.set $1 + loop $for-loop|1709 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 - call $~lib/typedarray/Uint8ClampedArray#__get + local.get $1 + call $~lib/typedarray/Int8Array#__get local.get $0 - local.get $9 - call $~lib/typedarray/Uint8ClampedArray#__get + local.get $1 + call $~lib/typedarray/Int8Array#__get i32.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|143 + local.set $1 + br $for-loop|1709 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - local.set $9 + i32.const 20 + memory.fill $0 + local.get $0 + i32.const 10928 + i32.store $0 + local.get $0 + i32.const 10940 + i32.load $0 + local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store $0 offset=4 + i32.const 0 + local.set $1 + loop $for-loop|0713 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + i32.const 10928 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0713 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $2 + i32.load $0 + local.tee $0 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $2 + i32.load $0 offset=4 + local.get $2 + i32.load $0 + i32.sub + local.tee $0 + local.get $2 + i32.load $0 offset=8 + local.get $0 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store $0 offset=12 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store $0 offset=16 + i32.const 0 + local.set $1 + loop $for-loop|1722 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + i32.ne + br_if $folding-inner38 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1722 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58692,7 +58263,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58705,26 +58276,29 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|045 + i32.const 0 + local.set $1 + loop $for-loop|0726 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $9 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|045 + local.set $1 + br $for-loop|0726 end end global.get $~lib/memory/__stack_pointer @@ -58748,32 +58322,30 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 i32.store $0 local.get $3 i32.const 20 i32.sub i32.load $0 offset=16 - local.tee $1 - i32.const 1 - i32.and - br_if $folding-inner30 - global.get $~lib/memory/__stack_pointer + local.set $1 + local.get $0 i32.const 12 - i32.const 7 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -58800,33 +58372,31 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|147 + local.set $1 + loop $for-loop|1735 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 - call $~lib/typedarray/Int16Array#__get + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__get local.get $0 - local.get $9 - call $~lib/typedarray/Int16Array#__get + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__get i32.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|147 + local.set $1 + br $for-loop|1735 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58834,7 +58404,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58847,27 +58417,28 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Int16Array#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|049 + i32.const 0 + local.set $1 + loop $for-loop|0739 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $9 + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|049 + local.set $1 + br $for-loop|0739 end end global.get $~lib/memory/__stack_pointer @@ -58891,18 +58462,18 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -58913,10 +58484,10 @@ local.tee $1 i32.const 1 i32.and - br_if $folding-inner30 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -58943,33 +58514,31 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|151 + local.set $1 + loop $for-loop|1748 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 - call $~lib/typedarray/Uint16Array#__get + local.get $1 + call $~lib/typedarray/Int16Array#__get local.get $0 - local.get $9 - call $~lib/typedarray/Uint16Array#__get + local.get $1 + call $~lib/typedarray/Int16Array#__get i32.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|151 + local.set $1 + br $for-loop|1748 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58977,7 +58546,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58990,25 +58559,29 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Uint16Array#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|053 + i32.const 0 + local.set $1 + loop $for-loop|0752 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $9 + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|053 + local.set $1 + br $for-loop|0752 end end global.get $~lib/memory/__stack_pointer @@ -59032,18 +58605,18 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59052,12 +58625,12 @@ i32.sub i32.load $0 offset=16 local.tee $1 - i32.const 3 + i32.const 1 i32.and - br_if $folding-inner30 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 9 + i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store $0 @@ -59084,33 +58657,31 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|155 + local.set $1 + loop $for-loop|1761 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 - call $~lib/typedarray/Int32Array#__get + local.get $1 + call $~lib/typedarray/Uint16Array#__get local.get $0 - local.get $9 - call $~lib/typedarray/Int32Array#__get + local.get $1 + call $~lib/typedarray/Uint16Array#__get i32.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|155 + local.set $1 + br $for-loop|1761 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59118,7 +58689,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59131,25 +58702,27 @@ i32.const 10940 i32.load $0 local.tee $5 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|057 + i32.const 0 + local.set $1 + loop $for-loop|0765 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $9 + call $~lib/typedarray/Int32Array#__set + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|057 + local.set $1 + br $for-loop|0765 end end global.get $~lib/memory/__stack_pointer @@ -59173,18 +58746,159 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store $0 + local.get $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + local.tee $1 + i32.const 3 + i32.and + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 + local.get $0 + local.get $3 + i32.store $0 + local.get $3 + if + local.get $0 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $0 + local.get $3 + i32.store $0 offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $0 + i32.store $0 offset=16 + i32.const 0 + local.set $1 + loop $for-loop|1774 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $1 + call $~lib/typedarray/Int32Array#__get + local.get $0 + local.get $1 + call $~lib/typedarray/Int32Array#__get + i32.ne + br_if $folding-inner38 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1774 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.const 20 + memory.fill $0 + local.get $0 + i32.const 10928 + i32.store $0 + local.get $0 + i32.const 10940 + i32.load $0 + local.tee $5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 + i32.store $0 offset=4 + loop $for-loop|010 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 10928 + local.get $1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|010 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $4 + i32.load $0 + local.tee $0 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $4 + i32.load $0 offset=4 + local.get $4 + i32.load $0 + i32.sub + local.tee $0 + local.get $4 + i32.load $0 offset=8 + local.get $0 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $3 + i32.store $0 offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59195,7 +58909,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner30 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 @@ -59225,25 +58939,25 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|159 + local.set $1 + loop $for-loop|111 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 call $~lib/typedarray/Uint32Array#__get local.get $0 - local.get $9 + local.get $1 call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|159 + local.set $1 + br $for-loop|111 end end global.get $~lib/memory/__stack_pointer @@ -59251,7 +58965,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59259,7 +58973,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59275,23 +58989,23 @@ call $~lib/typedarray/Int64Array#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|061 + loop $for-loop|00 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|061 + local.set $1 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer @@ -59315,18 +59029,18 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59337,7 +59051,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner30 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 @@ -59367,25 +59081,25 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|163 + local.set $1 + loop $for-loop|11 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 call $~lib/typedarray/Int64Array#__get local.get $0 - local.get $9 + local.get $1 call $~lib/typedarray/Int64Array#__get i64.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|163 + local.set $1 + br $for-loop|11 end end global.get $~lib/memory/__stack_pointer @@ -59393,7 +59107,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59401,7 +59115,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59417,23 +59131,23 @@ call $~lib/typedarray/Uint64Array#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|065 + loop $for-loop|02 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|065 + local.set $1 + br $for-loop|02 end end global.get $~lib/memory/__stack_pointer @@ -59457,18 +59171,18 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59479,7 +59193,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner30 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 @@ -59509,25 +59223,25 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|167 + local.set $1 + loop $for-loop|13 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 call $~lib/typedarray/Uint64Array#__get local.get $0 - local.get $9 + local.get $1 call $~lib/typedarray/Uint64Array#__get i64.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|167 + local.set $1 + br $for-loop|13 end end global.get $~lib/memory/__stack_pointer @@ -59535,7 +59249,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59543,7 +59257,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59559,23 +59273,23 @@ call $~lib/typedarray/Float32Array#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|069 + loop $for-loop|04 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|069 + local.set $1 + br $for-loop|04 end end global.get $~lib/memory/__stack_pointer @@ -59599,18 +59313,18 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59621,7 +59335,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner30 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 @@ -59651,25 +59365,25 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|171 + local.set $1 + loop $for-loop|15 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 call $~lib/typedarray/Float32Array#__get local.get $0 - local.get $9 + local.get $1 call $~lib/typedarray/Float32Array#__get f32.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|171 + local.set $1 + br $for-loop|15 end end global.get $~lib/memory/__stack_pointer @@ -59677,7 +59391,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59685,7 +59399,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59701,23 +59415,23 @@ call $~lib/typedarray/Float64Array#constructor local.tee $4 i32.store $0 offset=4 - loop $for-loop|073 + loop $for-loop|06 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 i32.const 10928 - local.get $9 + local.get $1 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|073 + local.set $1 + br $for-loop|06 end end global.get $~lib/memory/__stack_pointer @@ -59741,18 +59455,18 @@ call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 i32.store $0 offset=12 - global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 @@ -59763,7 +59477,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner30 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 14 @@ -59793,25 +59507,25 @@ local.get $0 i32.store $0 offset=16 i32.const 0 - local.set $9 - loop $for-loop|175 + local.set $1 + loop $for-loop|17 + local.get $1 local.get $5 - local.get $9 - i32.gt_s + i32.lt_s if local.get $4 - local.get $9 + local.get $1 call $~lib/typedarray/Float64Array#__get local.get $0 - local.get $9 + local.get $1 call $~lib/typedarray/Float64Array#__get f64.ne - br_if $folding-inner29 - local.get $9 + br_if $folding-inner38 + local.get $1 i32.const 1 i32.add - local.set $9 - br $for-loop|175 + local.set $1 + br $for-loop|17 end end global.get $~lib/memory/__stack_pointer @@ -59834,7 +59548,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59904,7 +59618,7 @@ i32.const 11008 i32.store $0 offset=16 i32.const 0 - local.set $0 + local.set $1 i32.const 11020 i32.load $0 local.tee $4 @@ -59913,35 +59627,35 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner19 + br_if $folding-inner25 local.get $5 i32.load $0 offset=4 local.set $3 i32.const 11012 i32.load $0 local.set $2 - loop $for-loop|0878 - local.get $0 + loop $for-loop|0781 + local.get $1 local.get $4 i32.lt_s if - local.get $3 - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $1 + local.tee $0 + local.get $3 i32.add - local.get $1 + local.get $0 local.get $2 i32.add i32.load $0 f32.convert_i32_s f32.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0878 + local.set $1 + br $for-loop|0781 end end i32.const 10 @@ -59979,7 +59693,7 @@ i32.load $0 offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $3 i32.const 6 i32.add local.get $5 @@ -59987,40 +59701,40 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner19 + br_if $folding-inner25 local.get $5 i32.load $0 offset=4 i32.const 24 i32.add - local.set $1 + local.set $2 local.get $9 i32.load $0 offset=4 - local.set $0 + local.set $1 i32.const 0 - local.set $9 - loop $for-loop|0887 - local.get $2 - local.get $9 - i32.gt_s + local.set $0 + loop $for-loop|0788 + local.get $0 + local.get $3 + i32.lt_s if - local.get $1 - local.get $9 + local.get $2 + local.get $0 i32.const 2 i32.shl i32.add + local.get $1 local.get $0 - local.get $9 i32.const 3 i32.shl i32.add i64.load $0 f32.convert_i64_s f32.store $0 - local.get $9 + local.get $0 i32.const 1 i32.add - local.set $9 - br $for-loop|0887 + local.set $0 + br $for-loop|0788 end end i32.const 10 @@ -60043,22 +59757,22 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner19 + br_if $folding-inner25 local.get $5 i32.load $0 offset=4 local.set $2 local.get $8 i32.load $0 offset=4 - local.set $1 - i32.const 0 local.set $0 - loop $for-loop|0896 - local.get $0 + i32.const 0 + local.set $1 + loop $for-loop|0795 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -60068,11 +59782,11 @@ i32.load8_u $0 f32.convert_i32_u f32.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0896 + local.set $1 + br $for-loop|0795 end end local.get $7 @@ -60087,7 +59801,7 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner19 + br_if $folding-inner25 local.get $5 i32.load $0 offset=4 i32.const 16 @@ -60095,32 +59809,32 @@ local.set $2 local.get $7 i32.load $0 offset=4 - local.set $1 - i32.const 0 local.set $0 - loop $for-loop|0905 - local.get $0 + i32.const 0 + local.set $1 + loop $for-loop|0802 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 f32.convert_i32_s f32.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0905 + local.set $1 + br $for-loop|0802 end end global.get $~lib/memory/__stack_pointer @@ -60136,7 +59850,7 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner19 + br_if $folding-inner25 local.get $5 i32.load $0 offset=4 i32.const 28 @@ -60144,16 +59858,16 @@ local.set $2 i32.const 11268 i32.load $0 - local.set $1 - i32.const 0 local.set $0 - loop $for-loop|0914 - local.get $0 + i32.const 0 + local.set $1 + loop $for-loop|0809 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -60163,11 +59877,11 @@ i32.load8_s $0 f32.convert_i32_s f32.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0914 + local.set $1 + br $for-loop|0809 end end i32.const 10 @@ -60193,7 +59907,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60202,106 +59916,106 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $8 + local.tee $9 i32.store $0 - local.get $8 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $8 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $8 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $8 i32.store $0 offset=4 - local.get $7 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $7 i32.store $0 offset=8 - local.get $5 + local.get $7 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $7 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $7 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $5 i32.store $0 offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store $0 offset=16 i32.const 0 - local.set $0 + local.set $1 i32.const 11020 i32.load $0 local.tee $3 - local.get $4 + local.get $5 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner19 - local.get $4 + br_if $folding-inner25 + local.get $5 i32.load $0 offset=4 local.set $2 i32.const 11012 i32.load $0 - local.set $1 - loop $for-loop|0923 - local.get $0 + local.set $0 + loop $for-loop|0816 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 f64.convert_i32_s f64.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0923 + local.set $1 + br $for-loop|0816 end end i32.const 10 @@ -60313,7 +60027,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer @@ -60324,45 +60038,45 @@ local.tee $3 i32.const 3 i32.add - local.get $4 + local.get $5 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner19 - local.get $4 + br_if $folding-inner25 + local.get $5 i32.load $0 offset=4 i32.const 24 i32.add local.set $2 i32.const 11092 i32.load $0 - local.set $1 - i32.const 0 local.set $0 - loop $for-loop|0932 - local.get $0 + i32.const 0 + local.set $1 + loop $for-loop|0823 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load $0 f64.promote_f32 f64.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0932 + local.set $1 + br $for-loop|0823 end end i32.const 10 @@ -60374,54 +60088,54 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $8 + local.get $9 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 6 i32.add - local.get $4 + local.get $5 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner19 - local.get $4 + br_if $folding-inner25 + local.get $5 i32.load $0 offset=4 i32.const 48 i32.add - local.set $2 - local.get $8 + local.set $3 + local.get $9 i32.load $0 offset=4 - local.set $1 + local.set $2 i32.const 0 - local.set $9 - loop $for-loop|0940 - local.get $3 - local.get $9 - i32.gt_s + local.set $0 + loop $for-loop|0829 + local.get $0 + local.get $4 + i32.lt_s if - local.get $2 - local.get $9 + local.get $0 i32.const 3 i32.shl - local.tee $0 + local.tee $1 + local.get $3 i32.add - local.get $0 local.get $1 + local.get $2 i32.add i64.load $0 f64.convert_i64_s f64.store $0 - local.get $9 + local.get $0 i32.const 1 i32.add - local.set $9 - br $for-loop|0940 + local.set $0 + br $for-loop|0829 end end i32.const 10 @@ -60433,33 +60147,33 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $7 + local.get $8 i32.load $0 offset=8 local.tee $3 - local.get $4 + local.get $5 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner19 - local.get $4 + br_if $folding-inner25 + local.get $5 i32.load $0 offset=4 local.set $2 - local.get $7 + local.get $8 i32.load $0 offset=4 - local.set $1 - i32.const 0 local.set $0 - loop $for-loop|0949 - local.get $0 + i32.const 0 + local.set $1 + loop $for-loop|0836 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -60469,59 +60183,59 @@ i32.load8_u $0 f64.convert_i32_u f64.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0949 + local.set $1 + br $for-loop|0836 end end - local.get $5 + local.get $7 i32.load $0 offset=8 i32.const 1 i32.shr_u local.tee $3 i32.const 4 i32.add - local.get $4 + local.get $5 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner19 - local.get $4 + br_if $folding-inner25 + local.get $5 i32.load $0 offset=4 i32.const 32 i32.add local.set $2 - local.get $5 + local.get $7 i32.load $0 offset=4 - local.set $1 - i32.const 0 local.set $0 - loop $for-loop|0958 - local.get $0 + i32.const 0 + local.set $1 + loop $for-loop|0843 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s $0 f64.convert_i32_s f64.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0958 + local.set $1 + br $for-loop|0843 end end global.get $~lib/memory/__stack_pointer @@ -60532,29 +60246,29 @@ local.tee $3 i32.const 7 i32.add - local.get $4 + local.get $5 i32.load $0 offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner19 - local.get $4 + br_if $folding-inner25 + local.get $5 i32.load $0 offset=4 i32.const 56 i32.add local.set $2 i32.const 11268 i32.load $0 - local.set $1 - i32.const 0 local.set $0 - loop $for-loop|0967 - local.get $0 + i32.const 0 + local.set $1 + loop $for-loop|0850 + local.get $1 local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -60564,11 +60278,11 @@ i32.load8_s $0 f64.convert_i32_s f64.store $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0967 + local.set $1 + br $for-loop|0850 end end i32.const 10 @@ -60580,7 +60294,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store $0 offset=16 - local.get $4 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer @@ -60653,7 +60367,7 @@ i32.const 1 i32.add i32.lt_s - br_if $folding-inner19 + br_if $folding-inner25 local.get $7 i32.load $0 offset=4 i32.const 1 @@ -60661,19 +60375,19 @@ local.set $2 local.get $0 i32.load $0 offset=4 - local.set $1 - i32.const 0 local.set $0 - loop $for-loop|0976 - local.get $0 + i32.const 0 + local.set $1 + loop $for-loop|0857 + local.get $1 local.get $3 i32.lt_s if - local.get $0 + local.get $1 local.get $2 i32.add - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -60692,11 +60406,11 @@ f32.eq select i32.store8 $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0976 + local.set $1 + br $for-loop|0857 end end local.get $7 @@ -60713,7 +60427,7 @@ i32.const 8 i32.add i32.lt_s - br_if $folding-inner19 + br_if $folding-inner25 local.get $7 i32.load $0 offset=4 i32.const 8 @@ -60723,40 +60437,40 @@ i32.load $0 offset=4 local.set $2 i32.const 0 - local.set $0 - loop $for-loop|0985 - local.get $0 + local.set $1 + loop $for-loop|0864 + local.get $1 local.get $4 i32.lt_s if - local.get $0 + local.get $1 local.get $3 i32.add - i32.const 255 local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $1 + local.tee $0 + i32.const 255 + local.get $0 i32.sub i32.const 31 i32.shr_s - local.get $1 i32.or - local.get $1 + local.get $0 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and i32.store8 $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0985 + local.set $1 + br $for-loop|0864 end end i32.const 10 @@ -60821,7 +60535,7 @@ local.get $7 i32.load $0 offset=8 i32.gt_s - br_if $folding-inner19 + br_if $folding-inner25 local.get $7 i32.load $0 offset=4 local.set $3 @@ -60829,33 +60543,33 @@ i32.load $0 offset=4 local.set $2 i32.const 0 - local.set $0 - loop $for-loop|0994 - local.get $0 + local.set $1 + loop $for-loop|0871 + local.get $1 local.get $4 i32.lt_s if - local.get $0 + local.get $1 local.get $3 i32.add i32.const 255 local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load $0 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 255 i32.gt_u select i32.store8 $0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0994 + local.set $1 + br $for-loop|0871 end end local.get $7 @@ -60875,7 +60589,7 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -60883,15 +60597,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $2 @@ -60909,7 +60623,7 @@ i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -60919,20 +60633,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 block $1of1 block $0of1 - block $outOfRange + block $outOfRange1 global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange + br_table $0of1 $1of1 $outOfRange1 end unreachable end i32.const 15344 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15344 i32.store $0 @@ -60941,13 +60655,13 @@ i32.load $0 offset=4 local.get $2 i32.load $0 offset=8 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -60955,19 +60669,19 @@ call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15376 i32.store $0 offset=8 @@ -60982,25 +60696,25 @@ call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61008,15 +60722,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $2 @@ -61034,7 +60748,7 @@ i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61044,20 +60758,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of178 - block $0of179 - block $outOfRange80 + block $1of14 + block $0of15 + block $outOfRange6 global.get $~argumentsLength - br_table $0of179 $1of178 $outOfRange80 + br_table $0of15 $1of14 $outOfRange6 end unreachable end i32.const 15408 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15408 i32.store $0 @@ -61066,13 +60780,13 @@ i32.load $0 offset=4 local.get $2 i32.load $0 offset=8 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61080,19 +60794,19 @@ call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15440 i32.store $0 offset=8 @@ -61107,25 +60821,25 @@ call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61133,15 +60847,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $2 @@ -61159,7 +60873,7 @@ i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61169,20 +60883,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of182 - block $0of183 - block $outOfRange84 + block $1of18 + block $0of19 + block $outOfRange10 global.get $~argumentsLength - br_table $0of183 $1of182 $outOfRange84 + br_table $0of19 $1of18 $outOfRange10 end unreachable end i32.const 15472 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15472 i32.store $0 @@ -61191,13 +60905,13 @@ i32.load $0 offset=4 local.get $2 i32.load $0 offset=8 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61205,19 +60919,19 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15504 i32.store $0 offset=8 @@ -61232,25 +60946,25 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61258,15 +60972,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $2 @@ -61284,7 +60998,7 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61294,20 +61008,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of188 - block $0of189 - block $outOfRange90 + block $1of114 + block $0of115 + block $outOfRange16 global.get $~argumentsLength - br_table $0of189 $1of188 $outOfRange90 + br_table $0of115 $1of114 $outOfRange16 end unreachable end i32.const 15536 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15536 i32.store $0 @@ -61318,13 +61032,13 @@ i32.load $0 offset=8 i32.const 1 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61332,19 +61046,19 @@ call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15568 i32.store $0 offset=8 @@ -61361,25 +61075,25 @@ call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61387,15 +61101,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $2 @@ -61413,7 +61127,7 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61423,20 +61137,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of192 - block $0of193 - block $outOfRange94 + block $1of118 + block $0of119 + block $outOfRange20 global.get $~argumentsLength - br_table $0of193 $1of192 $outOfRange94 + br_table $0of119 $1of118 $outOfRange20 end unreachable end i32.const 15600 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15600 i32.store $0 @@ -61447,13 +61161,13 @@ i32.load $0 offset=8 i32.const 1 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61461,19 +61175,19 @@ call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15632 i32.store $0 offset=8 @@ -61490,25 +61204,25 @@ call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61516,15 +61230,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $2 @@ -61542,7 +61256,7 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61552,20 +61266,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of196 - block $0of197 - block $outOfRange98 + block $1of122 + block $0of123 + block $outOfRange24 global.get $~argumentsLength - br_table $0of197 $1of196 $outOfRange98 + br_table $0of123 $1of122 $outOfRange24 end unreachable end i32.const 15664 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15664 i32.store $0 @@ -61576,13 +61290,13 @@ i32.load $0 offset=8 i32.const 2 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61590,19 +61304,19 @@ call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15696 i32.store $0 offset=8 @@ -61619,25 +61333,25 @@ call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61645,15 +61359,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $2 @@ -61671,7 +61385,7 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61681,20 +61395,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1100 - block $0of1101 - block $outOfRange102 + block $1of126 + block $0of127 + block $outOfRange28 global.get $~argumentsLength - br_table $0of1101 $1of1100 $outOfRange102 + br_table $0of127 $1of126 $outOfRange28 end unreachable end i32.const 15728 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15728 i32.store $0 @@ -61705,13 +61419,13 @@ i32.load $0 offset=8 i32.const 2 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61719,19 +61433,19 @@ call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15760 i32.store $0 offset=8 @@ -61748,25 +61462,25 @@ call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61774,15 +61488,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $2 @@ -61800,7 +61514,7 @@ i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61810,20 +61524,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1104 - block $0of1105 - block $outOfRange106 + block $1of130 + block $0of131 + block $outOfRange32 global.get $~argumentsLength - br_table $0of1105 $1of1104 $outOfRange106 + br_table $0of131 $1of130 $outOfRange32 end unreachable end i32.const 15792 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15792 i32.store $0 @@ -61834,13 +61548,13 @@ i32.load $0 offset=8 i32.const 3 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61848,19 +61562,19 @@ call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15824 i32.store $0 offset=8 @@ -61877,25 +61591,25 @@ call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61903,15 +61617,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $2 @@ -61929,7 +61643,7 @@ i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -61939,20 +61653,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1108 - block $0of1109 - block $outOfRange110 + block $1of134 + block $0of135 + block $outOfRange36 global.get $~argumentsLength - br_table $0of1109 $1of1108 $outOfRange110 + br_table $0of135 $1of134 $outOfRange36 end unreachable end i32.const 15856 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15856 i32.store $0 @@ -61963,13 +61677,13 @@ i32.load $0 offset=8 i32.const 3 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -61977,19 +61691,19 @@ call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15888 i32.store $0 offset=8 @@ -62006,25 +61720,25 @@ call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62032,15 +61746,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store $0 - local.get $0 + local.get $1 i32.const 0 i32.store $0 offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $2 @@ -62058,7 +61772,7 @@ f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -62068,20 +61782,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store $0 - block $1of1112 - block $0of1113 - block $outOfRange114 + block $1of138 + block $0of139 + block $outOfRange40 global.get $~argumentsLength - br_table $0of1113 $1of1112 $outOfRange114 + br_table $0of139 $1of138 $outOfRange40 end unreachable end i32.const 15920 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store $0 @@ -62092,13 +61806,13 @@ i32.load $0 offset=8 i32.const 2 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 i32.store $0 offset=4 local.get $2 @@ -62106,19 +61820,19 @@ call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15952 i32.store $0 offset=8 @@ -62135,19 +61849,19 @@ call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62159,7 +61873,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62196,19 +61910,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner32 + br_if $folding-inner33 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner33 + br_if $folding-inner34 global.get $~lib/memory/__stack_pointer i32.const 15984 i32.store $0 offset=8 @@ -62225,19 +61939,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner35 + br_if $folding-inner36 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner36 + br_if $folding-inner37 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62248,12 +61962,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0997 + loop $while-continue|0873 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0997 + br $while-continue|0873 end end end @@ -62383,155 +62097,155 @@ end i32.const 0 i32.const 1568 - i32.const 675 + i32.const 570 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 676 - i32.const 5 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 - i32.const 5 + i32.const 576 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 673 - i32.const 5 + i32.const 577 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 388 - i32.const 3 + i32.const 675 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 389 - i32.const 3 + i32.const 676 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 390 - i32.const 3 + i32.const 672 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 673 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 570 + i32.const 1360 + i32.const 1632 + i32.const 1902 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 575 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 576 + i32.const 389 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 577 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 578 + i32.const 885 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 730 - i32.const 5 + i32.const 886 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 885 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 886 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 887 + i32.const 891 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 891 - i32.const 3 + i32.const 730 + i32.const 5 call $~lib/builtins/abort unreachable ) @@ -63059,7 +62773,6 @@ (func $~lib/typedarray/Int32Array#subarray (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63076,7 +62789,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store $0 local.get $0 @@ -63084,26 +62796,6 @@ i32.const 2 i32.shr_u local.set $3 - local.get $4 - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store $0 - local.get $5 - local.get $0 - i32.load $0 - local.tee $4 - i32.store $0 - local.get $4 - if - local.get $5 - local.get $4 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $5 - local.get $0 - i32.load $0 offset=4 local.get $1 i32.const 0 i32.lt_s @@ -63111,9 +62803,9 @@ local.get $1 local.get $3 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -63125,12 +62817,7 @@ i32.lt_s select end - local.tee $0 - i32.const 2 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $5 + local.set $4 local.get $2 i32.const 0 i32.lt_s @@ -63153,12 +62840,40 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $4 local.get $1 - i32.lt_s + local.get $4 + i32.gt_s select + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store $0 + local.get $3 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $3 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 local.get $0 + i32.load $0 offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $3 + local.get $2 + local.get $4 i32.sub i32.const 2 i32.shl @@ -63167,12 +62882,11 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 ) (func $~lib/typedarray/Float64Array#subarray (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63189,7 +62903,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store $0 local.get $0 @@ -63197,26 +62910,6 @@ i32.const 3 i32.shr_u local.set $3 - local.get $4 - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store $0 - local.get $5 - local.get $0 - i32.load $0 - local.tee $4 - i32.store $0 - local.get $4 - if - local.get $5 - local.get $4 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $5 - local.get $0 - i32.load $0 offset=4 local.get $1 i32.const 0 i32.lt_s @@ -63224,9 +62917,9 @@ local.get $1 local.get $3 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -63238,12 +62931,7 @@ i32.lt_s select end - local.tee $0 - i32.const 3 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $5 + local.set $4 local.get $2 i32.const 0 i32.lt_s @@ -63266,12 +62954,40 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $4 local.get $1 - i32.lt_s + local.get $4 + i32.gt_s select + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store $0 + local.get $3 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $3 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 local.get $0 + i32.load $0 offset=4 + local.get $4 + i32.const 3 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $3 + local.get $2 + local.get $4 i32.sub i32.const 3 i32.shl @@ -63280,7 +62996,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 ) (func $~lib/typedarray/Float64Array#sort@varargs (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) @@ -63399,7 +63115,6 @@ (func $~lib/typedarray/Int8Array#subarray (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63416,32 +63131,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store $0 local.get $0 i32.load $0 offset=8 local.set $3 - local.get $4 - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store $0 - local.get $5 - local.get $0 - i32.load $0 - local.tee $4 - i32.store $0 - local.get $4 - if - local.get $5 - local.get $4 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $5 - local.get $0 - i32.load $0 offset=4 local.get $1 i32.const 0 i32.lt_s @@ -63449,9 +63143,9 @@ local.get $1 local.get $3 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -63463,10 +63157,7 @@ i32.lt_s select end - local.tee $0 - i32.add - i32.store $0 offset=4 - local.get $5 + local.set $4 local.get $2 i32.const 0 i32.lt_s @@ -63489,19 +63180,45 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $4 local.get $1 - i32.lt_s + local.get $4 + i32.gt_s select + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store $0 + local.get $3 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $3 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $3 + local.get $4 local.get $0 + i32.load $0 offset=4 + i32.add + i32.store $0 offset=4 + local.get $3 + local.get $2 + local.get $4 i32.sub i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 ) (func $~lib/typedarray/Int32Array#slice (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -63622,48 +63339,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store $0 + i32.const 4 local.get $0 i32.load $0 offset=8 - local.set $2 - local.get $3 - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - local.get $4 - local.get $0 - i32.load $0 local.tee $3 - i32.store $0 local.get $3 - if - local.get $4 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $0 - i32.load $0 offset=4 - i32.const 4 - local.get $2 - local.get $2 i32.const 4 i32.gt_s select - local.tee $0 - i32.add - i32.store $0 offset=4 - local.get $4 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -63673,19 +63365,45 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 local.get $0 - local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 local.get $1 - i32.lt_s - select + if + local.get $4 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $2 local.get $0 + i32.load $0 offset=4 + i32.add + i32.store $0 offset=4 + local.get $4 + local.get $3 + local.get $2 i32.sub i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer @@ -63714,48 +63432,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store $0 + i32.const 4 local.get $0 i32.load $0 offset=8 - local.set $2 - local.get $3 - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - local.get $4 - local.get $0 - i32.load $0 local.tee $3 - i32.store $0 local.get $3 - if - local.get $4 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $0 - i32.load $0 offset=4 - i32.const 4 - local.get $2 - local.get $2 i32.const 4 i32.gt_s select - local.tee $0 - i32.add - i32.store $0 offset=4 - local.get $4 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -63765,19 +63458,45 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $4 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $2 local.get $0 + i32.load $0 offset=4 + i32.add + i32.store $0 offset=4 + local.get $4 + local.get $3 + local.get $2 i32.sub i32.store $0 offset=8 global.get $~lib/memory/__stack_pointer @@ -63806,52 +63525,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store $0 + i32.const 4 local.get $0 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $2 - local.get $3 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - local.get $4 - local.get $0 - i32.load $0 local.tee $3 - i32.store $0 local.get $3 - if - local.get $4 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $0 - i32.load $0 offset=4 - i32.const 4 - local.get $2 - local.get $2 i32.const 4 i32.gt_u select - local.tee $0 - i32.const 1 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $4 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -63861,19 +63553,47 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $4 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 local.get $0 + i32.load $0 offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $4 + local.get $3 + local.get $2 i32.sub i32.const 1 i32.shl @@ -63904,52 +63624,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store $0 + i32.const 4 local.get $0 i32.load $0 offset=8 i32.const 1 i32.shr_u - local.set $2 - local.get $3 - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - local.get $4 - local.get $0 - i32.load $0 local.tee $3 - i32.store $0 local.get $3 - if - local.get $4 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $0 - i32.load $0 offset=4 - i32.const 4 - local.get $2 - local.get $2 i32.const 4 i32.gt_u select - local.tee $0 - i32.const 1 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $4 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -63959,19 +63652,47 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $4 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 + local.get $0 + i32.load $0 offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $4 + local.get $3 + local.get $2 i32.sub i32.const 1 i32.shl @@ -64002,52 +63723,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store $0 + i32.const 4 local.get $0 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 - local.get $3 - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - local.get $4 - local.get $0 - i32.load $0 local.tee $3 - i32.store $0 local.get $3 - if - local.get $4 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $0 - i32.load $0 offset=4 - i32.const 4 - local.get $2 - local.get $2 i32.const 4 i32.gt_u select - local.tee $0 - i32.const 2 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $4 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64057,19 +63751,47 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $4 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 local.get $0 + i32.load $0 offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $4 + local.get $3 + local.get $2 i32.sub i32.const 2 i32.shl @@ -64100,52 +63822,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store $0 + i32.const 4 local.get $0 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - local.get $3 - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - local.get $4 - local.get $0 - i32.load $0 local.tee $3 - i32.store $0 local.get $3 - if - local.get $4 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $0 - i32.load $0 offset=4 - i32.const 4 - local.get $2 - local.get $2 i32.const 4 i32.gt_u select - local.tee $0 - i32.const 3 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $4 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64155,19 +63850,47 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $4 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 local.get $0 + i32.load $0 offset=4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $4 + local.get $3 + local.get $2 i32.sub i32.const 3 i32.shl @@ -64198,52 +63921,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store $0 + i32.const 4 local.get $0 i32.load $0 offset=8 i32.const 3 i32.shr_u - local.set $2 - local.get $3 - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - local.get $4 - local.get $0 - i32.load $0 local.tee $3 - i32.store $0 local.get $3 - if - local.get $4 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $0 - i32.load $0 offset=4 - i32.const 4 - local.get $2 - local.get $2 i32.const 4 i32.gt_u select - local.tee $0 - i32.const 3 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $4 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64253,19 +63949,47 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $4 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 local.get $0 + i32.load $0 offset=4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $4 + local.get $3 + local.get $2 i32.sub i32.const 3 i32.shl @@ -64296,52 +64020,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store $0 + i32.const 4 local.get $0 i32.load $0 offset=8 i32.const 2 i32.shr_u - local.set $2 - local.get $3 - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store $0 - local.get $4 - local.get $0 - i32.load $0 local.tee $3 - i32.store $0 local.get $3 - if - local.get $4 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $4 - local.get $0 - i32.load $0 offset=4 - i32.const 4 - local.get $2 - local.get $2 i32.const 4 i32.gt_u select - local.tee $0 - i32.const 2 - i32.shl - i32.add - i32.store $0 offset=4 - local.get $4 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64351,19 +64048,47 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store $0 + local.get $4 + local.get $0 + i32.load $0 + local.tee $1 + i32.store $0 + local.get $1 + if + local.get $4 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $4 local.get $0 + i32.load $0 offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.store $0 offset=4 + local.get $4 + local.get $3 + local.get $2 i32.sub i32.const 2 i32.shl diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index e0a46b0bd5..eac56c80d3 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -115,6 +115,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -134,6 +135,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -146,17 +148,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -168,8 +171,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -312,6 +313,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -331,6 +333,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -416,15 +419,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -451,6 +451,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -626,22 +627,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -666,16 +670,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -771,18 +778,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -806,18 +816,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -827,12 +840,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -980,22 +996,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1040,16 +1059,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1104,10 +1126,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1223,6 +1248,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1232,15 +1258,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1301,17 +1325,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1323,22 +1345,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1411,6 +1431,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1471,8 +1492,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1517,8 +1536,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1568,8 +1585,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1651,6 +1666,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1729,6 +1745,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1744,6 +1761,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1834,16 +1852,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1876,16 +1897,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1899,46 +1923,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1975,10 +2006,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2098,30 +2132,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2192,6 +2232,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2204,6 +2245,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2266,6 +2308,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/Object#get:rtSize (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -2315,6 +2358,7 @@ select memory.copy $0 $0 local.get $newPtr + return ) (func $~lib/util/uri/storeHex (type $i32_i32_i32_=>_none) (param $dst i32) (param $offset i32) (param $ch i32) local.get $dst @@ -2349,7 +2393,6 @@ (local $offset i32) (local $outSize i32) (local $dst i32) - (local $7 i32) (local $org i32) (local $c i32) (local $c1 i32) @@ -2378,8 +2421,6 @@ local.get $i local.get $len i32.lt_u - local.set $7 - local.get $7 if local.get $i local.set $org @@ -2699,6 +2740,7 @@ local.set $dst end local.get $dst + return ) (func $~lib/uri/encodeURIComponent (type $i32_=>_i32) (param $str i32) (result i32) local.get $str @@ -2706,12 +2748,12 @@ call $~lib/string/String#get:length global.get $~lib/util/uri/URL_UNSAFE call $~lib/util/uri/encode + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2782,8 +2824,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -2812,6 +2852,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -2854,6 +2895,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/uri/encodeURI (type $i32_=>_i32) (param $str i32) (result i32) local.get $str @@ -2861,6 +2903,7 @@ call $~lib/string/String#get:length global.get $~lib/util/uri/URI_UNSAFE call $~lib/util/uri/encode + return ) (func $~lib/util/uri/loadHex (type $i32_i32_=>_i32) (param $src i32) (param $offset i32) (result i32) (local $c0 i32) @@ -2879,28 +2922,10 @@ i32.add i32.load16_u $0 offset=2 local.set $c1 - local.get $c0 - local.set $ch - local.get $ch - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if (result i32) - i32.const 1 - else + block $~lib/util/uri/isHex|inlined.0 (result i32) + local.get $c0 + local.set $ch local.get $ch - i32.const 32 - i32.or - i32.const 97 - i32.sub - i32.const 6 - i32.lt_u - end - if (result i32) - local.get $c1 - local.set $ch|5 - local.get $ch|5 i32.const 48 i32.sub i32.const 10 @@ -2908,7 +2933,7 @@ if (result i32) i32.const 1 else - local.get $ch|5 + local.get $ch i32.const 32 i32.or i32.const 97 @@ -2916,51 +2941,79 @@ i32.const 6 i32.lt_u end + br $~lib/util/uri/isHex|inlined.0 + end + if (result i32) + block $~lib/util/uri/isHex|inlined.1 (result i32) + local.get $c1 + local.set $ch|5 + local.get $ch|5 + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $ch|5 + i32.const 32 + i32.or + i32.const 97 + i32.sub + i32.const 6 + i32.lt_u + end + br $~lib/util/uri/isHex|inlined.1 + end else i32.const 0 end if (result i32) - local.get $c0 - local.set $ch|6 - local.get $ch|6 - i32.const 32 - i32.or - i32.const 39 - i32.rem_u - i32.const 9 - i32.sub + block $~lib/util/uri/fromHex|inlined.0 (result i32) + local.get $c0 + local.set $ch|6 + local.get $ch|6 + i32.const 32 + i32.or + i32.const 39 + i32.rem_u + i32.const 9 + i32.sub + br $~lib/util/uri/fromHex|inlined.0 + end i32.const 4 i32.shl - local.get $c1 - local.set $ch|7 - local.get $ch|7 - i32.const 32 - i32.or - i32.const 39 - i32.rem_u - i32.const 9 - i32.sub + block $~lib/util/uri/fromHex|inlined.1 (result i32) + local.get $c1 + local.set $ch|7 + local.get $ch|7 + i32.const 32 + i32.or + i32.const 39 + i32.rem_u + i32.const 9 + i32.sub + br $~lib/util/uri/fromHex|inlined.1 + end i32.or else i32.const -1 end + return ) (func $~lib/util/uri/decode (type $i32_i32_i32_=>_i32) (param $src i32) (param $len i32) (param $component i32) (result i32) (local $i i32) (local $offset i32) (local $ch i32) (local $dst i32) - (local $7 i32) (local $org i32) - (local $9 i32) (local $size i32) - (local $ch|11 i32) + (local $ch|9 i32) (local $c0 i32) (local $nb i32) (local $lo i32) - (local $15 i32) (local $c1 i32) - (local $lo|17 i32) + (local $lo|14 i32) (local $hi i32) local.get $len i32.eqz @@ -2985,8 +3038,6 @@ local.get $i local.get $len i32.lt_u - local.set $7 - local.get $7 if local.get $i local.set $org @@ -3007,8 +3058,6 @@ else i32.const 0 end - local.set $9 - local.get $9 if local.get $i i32.const 1 @@ -3093,22 +3142,25 @@ local.get $component i32.eqz if (result i32) - local.get $ch - local.set $ch|11 - local.get $ch|11 - i32.const 35 - i32.sub - i32.const 30 - i32.lt_u - if (result i32) - global.get $~lib/util/uri/URI_RESERVED - local.get $ch|11 + block $~lib/util/uri/isReserved|inlined.0 (result i32) + local.get $ch + local.set $ch|9 + local.get $ch|9 i32.const 35 i32.sub - i32.add - i32.load8_u $0 - else - i32.const 0 + i32.const 30 + i32.lt_u + if (result i32) + global.get $~lib/util/uri/URI_RESERVED + local.get $ch|9 + i32.const 35 + i32.sub + i32.add + i32.load8_u $0 + else + i32.const 0 + end + br $~lib/util/uri/isReserved|inlined.0 end else i32.const 0 @@ -3122,22 +3174,25 @@ local.set $i end else - local.get $ch - local.set $c0 - local.get $c0 - i32.const 192 - i32.sub - i32.const 56 - i32.lt_u - if (result i32) + block $~lib/util/uri/utf8LenFromUpperByte|inlined.0 (result i32) + local.get $ch + local.set $c0 local.get $c0 - i32.const 24 - i32.shl - i32.const -1 - i32.xor - i32.clz - else - i32.const 0 + i32.const 192 + i32.sub + i32.const 56 + i32.lt_u + if (result i32) + local.get $c0 + i32.const 24 + i32.shl + i32.const -1 + i32.xor + i32.clz + else + i32.const 0 + end + br $~lib/util/uri/utf8LenFromUpperByte|inlined.0 end local.set $nb i32.const 1 @@ -3171,8 +3226,6 @@ local.tee $nb i32.const 0 i32.ne - local.set $15 - local.get $15 if local.get $i i32.const 2 @@ -3291,7 +3344,7 @@ i32.shr_u i32.const 55296 i32.or - local.set $lo|17 + local.set $lo|14 local.get $ch i32.const 1023 i32.and @@ -3301,7 +3354,7 @@ local.get $dst local.get $offset i32.add - local.get $lo|17 + local.get $lo|14 local.get $hi i32.const 16 i32.shl @@ -3353,6 +3406,7 @@ local.set $dst end local.get $dst + return ) (func $~lib/uri/decodeURIComponent (type $i32_=>_i32) (param $str i32) (result i32) local.get $str @@ -3360,6 +3414,7 @@ call $~lib/string/String#get:length i32.const 1 call $~lib/util/uri/decode + return ) (func $~lib/uri/decodeURI (type $i32_=>_i32) (param $str i32) (result i32) local.get $str @@ -3367,10 +3422,9 @@ call $~lib/string/String#get:length i32.const 0 call $~lib/util/uri/decode + return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -3381,8 +3435,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -3396,8 +3448,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index 567969b665..a34e7c5a07 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -199,6 +199,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1248 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 37124 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1248 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1248 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 4336 + i32.load $0 + i32.gt_u + if + i32.const 1376 + i32.const 1440 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 4340 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -4136,146 +4268,18 @@ global.set $~lib/memory/__stack_pointer ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 37124 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 4336 - i32.load $0 - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 4340 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index 09627911ce..0b1d544e8f 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -61,6 +61,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -73,17 +74,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -95,8 +97,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -239,6 +239,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -258,6 +259,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -343,15 +345,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -378,6 +377,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -553,22 +553,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -593,16 +596,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -698,18 +704,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -733,18 +742,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -754,12 +766,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -907,22 +922,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -967,16 +985,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1031,10 +1052,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1150,6 +1174,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1159,15 +1184,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1228,17 +1251,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1250,22 +1271,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1338,6 +1357,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1398,8 +1418,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1444,8 +1462,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1495,8 +1511,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1578,6 +1592,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1656,6 +1671,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1671,6 +1687,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1761,16 +1778,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1803,16 +1823,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -1826,46 +1849,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -1902,10 +1932,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2025,30 +2058,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2119,6 +2158,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2131,6 +2171,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2193,15 +2234,21 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $super-inline/Foo#a (type $i32_=>_i32) (param $this i32) (result i32) i32.const 1 + return ) (func $super-inline/Bar#a (type $i32_=>_i32) (param $this i32) (result i32) (local $this|1 i32) - local.get $this - local.set $this|1 - i32.const 1 + block $super-inline/Foo#a|inlined.0 (result i32) + local.get $this + local.set $this|1 + i32.const 1 + br $super-inline/Foo#a|inlined.0 + end + return ) (func $super-inline/Foo#a@override (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index 6db6a7350b..47e9caf301 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) @@ -91,6 +91,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34236 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1440 + i32.load $0 + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1444 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1445,146 +1577,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34236 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1440 - i32.load $0 - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1444 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index 335561c89e..b57c16116b 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -80,6 +80,7 @@ return end i32.const 0 + return ) (func $switch/doSwitchBreakCase (type $i32_=>_i32) (param $n i32) (result i32) (local $1 i32) @@ -100,6 +101,7 @@ return end i32.const 1 + return ) (func $switch/doSwitchBreakDefault (type $i32_=>_i32) (param $n i32) (result i32) (local $1 i32) @@ -120,6 +122,7 @@ br $break|0 end i32.const 2 + return ) (func $switch/doSwitchFallThroughCase (type $i32_=>_i32) (param $n i32) (result i32) (local $1 i32) @@ -137,6 +140,7 @@ return end i32.const 1 + return ) (func $switch/doSwitchFallThroughDefault (type $i32_=>_i32) (param $n i32) (result i32) (local $1 i32) @@ -154,11 +158,13 @@ return end i32.const 2 + return ) (func $switch/doSwitchEmpty (type $i32_=>_i32) (param $n i32) (result i32) local.get $n drop i32.const 2 + return ) (func $start:switch (type $none_=>_none) i32.const 0 diff --git a/tests/compiler/tablebase.debug.wat b/tests/compiler/tablebase.debug.wat index 2b571ae006..58c7a0f809 100644 --- a/tests/compiler/tablebase.debug.wat +++ b/tests/compiler/tablebase.debug.wat @@ -21,6 +21,7 @@ (func $~lib/function/Function<%28%29=>void>#get:index (type $i32_=>_i32) (param $this i32) (result i32) local.get $this i32.load $0 + return ) (func $~start (type $none_=>_none) call $start:tablebase diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index d68dc809ce..1a580bd7f8 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -117,12 +117,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -193,8 +193,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -223,6 +221,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -265,6 +264,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $~lib/rt/itcms/Object#set:nextWithColor (type $i32_i32_=>_none) (param $this i32) (param $nextWithColor i32) local.get $this @@ -284,6 +284,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -296,17 +297,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -318,8 +320,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -462,6 +462,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -481,6 +482,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -566,15 +568,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -601,6 +600,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -776,22 +776,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -816,16 +819,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -921,18 +927,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -956,18 +965,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -977,12 +989,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1130,22 +1145,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1190,16 +1208,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1254,10 +1275,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1373,6 +1397,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1382,15 +1407,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1451,17 +1474,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1473,22 +1494,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1561,6 +1580,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1621,8 +1641,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1667,8 +1685,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1718,8 +1734,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1801,6 +1815,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1879,6 +1894,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1894,6 +1910,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1984,16 +2001,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2026,16 +2046,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2049,46 +2072,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2125,10 +2155,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2248,30 +2281,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2342,6 +2381,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2354,6 +2394,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2416,6 +2457,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/itcms/__link (type $i32_i32_i32_=>_none) (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) (local $child i32) @@ -2507,6 +2549,7 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 2 i32.shr_u + return ) (func $~lib/staticarray/StaticArray<~lib/string/String>#join (type $i32_i32_=>_i32) (param $this i32) (param $separator i32) (result i32) i32.const 0 @@ -2584,24 +2627,21 @@ unreachable ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $buffer i32) (param $num i32) (param $offset i32) - (local $3 i32) (local $t i32) (local $r i32) (local $d1 i32) (local $d2 i32) (local $digits1 i64) (local $digits2 i64) - (local $t|10 i32) - (local $d1|11 i32) + (local $t|9 i32) + (local $d1|10 i32) (local $digits i32) - (local $digits|13 i32) + (local $digits|12 i32) (local $digit i32) loop $while-continue|0 local.get $num i32.const 10000 i32.ge_u - local.set $3 - local.get $3 if local.get $num i32.const 10000 @@ -2660,19 +2700,19 @@ local.get $num i32.const 100 i32.div_u - local.set $t|10 + local.set $t|9 local.get $num i32.const 100 i32.rem_u - local.set $d1|11 - local.get $t|10 + local.set $d1|10 + local.get $t|9 local.set $num local.get $offset i32.const 2 i32.sub local.set $offset i32.const 1020 - local.get $d1|11 + local.get $d1|10 i32.const 2 i32.shl i32.add @@ -2700,13 +2740,13 @@ i32.shl i32.add i32.load $0 - local.set $digits|13 + local.set $digits|12 local.get $buffer local.get $offset i32.const 1 i32.shl i32.add - local.get $digits|13 + local.get $digits|12 i32.store $0 else local.get $offset @@ -2727,13 +2767,10 @@ end ) (func $~lib/util/number/utoa_hex_lut (type $i32_i64_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) - (local $3 i32) loop $while-continue|0 local.get $offset i32.const 2 i32.ge_u - local.set $3 - local.get $3 if local.get $offset i32.const 2 @@ -2781,14 +2818,15 @@ (local $b64 i64) (local $b i64) (local $e i32) - (local $6 i32) - (local $7 i32) - local.get $base - local.set $value - local.get $value - i32.popcnt - i32.const 1 - i32.eq + block $~lib/util/number/isPowerOf2|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -2815,8 +2853,6 @@ local.get $num local.get $b i64.ge_u - local.set $6 - local.get $6 if local.get $num local.get $b @@ -2837,8 +2873,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $7 - local.get $7 if local.get $num local.get $b64 @@ -2854,6 +2888,7 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (type $i32_i64_i32_i32_=>_none) (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) @@ -2950,6 +2985,7 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return ) (func $~lib/util/number/genDigits (type $i32_i64_i32_i64_i32_i64_i32_=>_i32) (param $buffer i32) (param $w_frc i64) (param $w_exp i32) (param $mp_frc i64) (param $mp_exp i32) (param $delta i64) (param $sign i32) (result i32) (local $one_exp i32) @@ -2960,32 +2996,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $15 i32) (local $d i32) + (local $16 i32) (local $17 i32) - (local $18 i32) (local $tmp i64) - (local $buffer|20 i32) - (local $len|21 i32) - (local $delta|22 i64) + (local $buffer|19 i32) + (local $len|20 i32) + (local $delta|21 i64) (local $rest i64) (local $ten_kappa i64) (local $wp_w i64) (local $lastp i32) (local $digit i32) + (local $d|27 i64) (local $28 i32) - (local $29 i32) - (local $d|30 i64) - (local $31 i32) - (local $buffer|32 i32) - (local $len|33 i32) - (local $delta|34 i64) - (local $rest|35 i64) - (local $ten_kappa|36 i64) - (local $wp_w|37 i64) - (local $lastp|38 i32) - (local $digit|39 i32) - (local $40 i32) + (local $buffer|29 i32) + (local $len|30 i32) + (local $delta|31 i64) + (local $rest|32 i64) + (local $ten_kappa|33 i64) + (local $wp_w|34 i64) + (local $lastp|35 i32) + (local $digit|36 i32) i32.const 0 local.get $mp_exp i32.sub @@ -3022,8 +3054,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $15 - local.get $15 if block $break|1 block $case10|1 @@ -3038,44 +3068,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $17 - local.get $17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -3187,11 +3217,11 @@ if local.get $buffer local.get $len - local.tee $18 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $18 + local.get $17 i32.const 1 i32.shl i32.add @@ -3223,11 +3253,11 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $buffer|20 + local.set $buffer|19 local.get $len - local.set $len|21 + local.set $len|20 local.get $delta - local.set $delta|22 + local.set $delta|21 local.get $tmp local.set $rest i32.const 3824 @@ -3242,8 +3272,8 @@ local.set $ten_kappa local.get $wp_w_frc local.set $wp_w - local.get $buffer|20 - local.get $len|21 + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 @@ -3258,7 +3288,7 @@ local.get $wp_w i64.lt_u if (result i32) - local.get $delta|22 + local.get $delta|21 local.get $rest i64.sub local.get $ten_kappa @@ -3288,8 +3318,6 @@ else i32.const 0 end - local.set $28 - local.get $28 if local.get $digit i32.const 1 @@ -3313,8 +3341,6 @@ end loop $while-continue|4 i32.const 1 - local.set $29 - local.get $29 if local.get $p2 i64.const 10 @@ -3328,8 +3354,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d|30 - local.get $d|30 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -3338,16 +3364,16 @@ if local.get $buffer local.get $len - local.tee $31 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $31 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d|30 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and @@ -3382,79 +3408,77 @@ i64.mul local.set $wp_w_frc local.get $buffer - local.set $buffer|32 + local.set $buffer|29 local.get $len - local.set $len|33 + local.set $len|30 local.get $delta - local.set $delta|34 + local.set $delta|31 local.get $p2 - local.set $rest|35 + local.set $rest|32 local.get $one_frc - local.set $ten_kappa|36 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $wp_w|37 - local.get $buffer|32 - local.get $len|33 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $lastp|38 - local.get $lastp|38 + local.set $lastp|35 + local.get $lastp|35 i32.load16_u $0 - local.set $digit|39 + local.set $digit|36 loop $while-continue|6 - local.get $rest|35 - local.get $wp_w|37 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $delta|34 - local.get $rest|35 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $ten_kappa|36 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $wp_w|37 - local.get $rest|35 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $rest|35 - local.get $ten_kappa|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $wp_w|37 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $40 - local.get $40 if - local.get $digit|39 + local.get $digit|36 i32.const 1 i32.sub - local.set $digit|39 - local.get $rest|35 - local.get $ten_kappa|36 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $rest|35 + local.set $rest|32 br $while-continue|6 end end - local.get $lastp|38 - local.get $digit|39 + local.get $lastp|35 + local.get $digit|36 i32.store16 $0 local.get $len return @@ -3467,26 +3491,24 @@ (func $~lib/util/number/prettify (type $i32_i32_i32_=>_i32) (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) (local $i i32) - (local $5 i32) (local $ptr i32) (local $offset i32) - (local $i|8 i32) - (local $9 i32) - (local $buffer|10 i32) - (local $k|11 i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) (local $sign i32) (local $decimals i32) - (local $buffer|14 i32) + (local $buffer|12 i32) (local $num i32) - (local $offset|16 i32) + (local $offset|14 i32) (local $len i32) - (local $buffer|18 i32) - (local $k|19 i32) - (local $sign|20 i32) - (local $decimals|21 i32) - (local $buffer|22 i32) - (local $num|23 i32) - (local $offset|24 i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -3527,8 +3549,6 @@ local.get $i local.get $kk i32.lt_s - local.set $5 - local.get $5 if local.get $buffer local.get $i @@ -3632,25 +3652,23 @@ i32.or i32.store $0 i32.const 2 - local.set $i|8 + local.set $i|7 loop $for-loop|1 - local.get $i|8 + local.get $i|7 local.get $offset i32.lt_s - local.set $9 - local.get $9 if local.get $buffer - local.get $i|8 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 i32.store16 $0 - local.get $i|8 + local.get $i|7 i32.const 1 i32.add - local.set $i|8 + local.set $i|7 br $for-loop|1 end end @@ -3666,51 +3684,54 @@ local.get $buffer i32.const 101 i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $buffer|10 - local.get $kk - i32.const 1 - i32.sub - local.set $k|11 - local.get $k|11 - i32.const 0 - i32.lt_s - local.set $sign - local.get $sign - if - i32.const 0 - local.get $k|11 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $k|11 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 $0 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $k|11 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals - local.get $buffer|10 - local.set $buffer|14 - local.get $k|11 - local.set $num - local.get $decimals - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num - local.get $offset|16 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|10 - i32.const 45 - i32.const 43 - local.get $sign - select - i32.store16 $0 - local.get $decimals local.set $length local.get $length i32.const 2 @@ -3740,53 +3761,56 @@ i32.const 101 i32.store16 $0 offset=2 local.get $length - local.get $buffer - local.get $len - i32.add - i32.const 4 - i32.add - local.set $buffer|18 - local.get $kk - i32.const 1 - i32.sub - local.set $k|19 - local.get $k|19 - i32.const 0 - i32.lt_s - local.set $sign|20 - local.get $sign|20 - if - i32.const 0 - local.get $k|19 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $k|19 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 $0 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $k|19 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $decimals|21 - local.get $buffer|18 - local.set $buffer|22 - local.get $k|19 - local.set $num|23 - local.get $decimals|21 - local.set $offset|24 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|22 - local.get $num|23 - local.get $offset|24 - call $~lib/util/number/utoa32_dec_lut - local.get $buffer|18 - i32.const 45 - i32.const 43 - local.get $sign|20 - select - i32.store16 $0 - local.get $decimals|21 i32.add local.set $length local.get $length @@ -3875,375 +3899,393 @@ i32.const 45 i32.store16 $0 end - local.get $value - local.set $value|3 - local.get $buffer - local.set $buffer|4 - local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|12 - local.get $e - i32.const 1 - i32.sub - local.set $exp|13 - local.get $frc|12 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|12 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|12 - local.get $exp|13 - local.get $off - i32.sub - local.set $exp|13 - i32.const 1 - local.get $f - i64.const 4503599627370496 - i64.eq - i32.add - local.set $m - local.get $frc|12 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2952 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 3648 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $frc - i64.clz - i32.wrap_i64 - local.set $off|20 - local.get $frc - local.get $off|20 - i64.extend_i32_s - i64.shl - local.set $frc - local.get $exp - local.get $off|20 - i32.sub - local.set $exp - global.get $~lib/util/number/_frc_pow - local.set $frc_pow - global.get $~lib/util/number/_exp_pow - local.set $exp_pow - local.get $frc - local.set $u - local.get $frc_pow - local.set $v - local.get $u - i64.const 4294967295 - i64.and - local.set $u0 - local.get $v - i64.const 4294967295 - i64.and - local.set $v0 - local.get $u - i64.const 32 - i64.shr_u - local.set $u1 - local.get $v - i64.const 32 - i64.shr_u - local.set $v1 - local.get $u0 - local.get $v0 - i64.mul - local.set $l - local.get $u1 - local.get $v0 - i64.mul - local.get $l - i64.const 32 - i64.shr_u - i64.add - local.set $t - local.get $u0 - local.get $v1 - i64.mul - local.get $t - i64.const 4294967295 - i64.and - i64.add - local.set $w - local.get $w - i64.const 2147483647 - i64.add - local.set $w - local.get $t - i64.const 32 - i64.shr_u - local.set $t - local.get $w - i64.const 32 - i64.shr_u - local.set $w - local.get $u1 - local.get $v1 - i64.mul - local.get $t - i64.add - local.get $w - i64.add - local.set $w_frc - local.get $exp - local.set $e1 - local.get $exp_pow - local.set $e2 - local.get $e1 - local.get $e2 - i32.add - i32.const 64 - i32.add - local.set $w_exp - global.get $~lib/util/number/_frc_plus - local.set $u|36 - local.get $frc_pow - local.set $v|37 - local.get $u|36 - i64.const 4294967295 - i64.and - local.set $u0|38 - local.get $v|37 - i64.const 4294967295 - i64.and - local.set $v0|39 - local.get $u|36 - i64.const 32 - i64.shr_u - local.set $u1|40 - local.get $v|37 - i64.const 32 - i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 - i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 - i64.mul - local.get $l|42 - i64.const 32 - i64.shr_u - i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.const 4294967295 - i64.and - i64.add - local.set $w|44 - local.get $w|44 - i64.const 2147483647 - i64.add - local.set $w|44 - local.get $t|43 - i64.const 32 - i64.shr_u - local.set $t|43 - local.get $w|44 - i64.const 32 - i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 - i64.mul - local.get $t|43 - i64.add - local.get $w|44 - i64.add - i64.const 1 - i64.sub - local.set $wp_frc - global.get $~lib/util/number/_exp - local.set $e1|46 - local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 - i32.add - i32.const 64 - i32.add - local.set $wp_exp - global.get $~lib/util/number/_frc_minus - local.set $u|49 - local.get $frc_pow - local.set $v|50 - local.get $u|49 - i64.const 4294967295 - i64.and - local.set $u0|51 - local.get $v|50 - i64.const 4294967295 - i64.and - local.set $v0|52 - local.get $u|49 - i64.const 32 - i64.shr_u - local.set $u1|53 - local.get $v|50 - i64.const 32 - i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 - i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 - i64.mul - local.get $l|55 - i64.const 32 - i64.shr_u - i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.const 4294967295 - i64.and - i64.add - local.set $w|57 - local.get $w|57 - i64.const 2147483647 - i64.add - local.set $w|57 - local.get $t|56 - i64.const 32 - i64.shr_u - local.set $t|56 - local.get $w|57 - i64.const 32 - i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 - i64.mul - local.get $t|56 - i64.add - local.get $w|57 - i64.add - i64.const 1 - i64.add - local.set $wm_frc - local.get $wp_frc - local.get $wm_frc - i64.sub - local.set $delta - local.get $buffer|4 - local.get $w_frc - local.get $w_exp - local.get $wp_frc - local.get $wp_exp - local.get $delta - local.get $sign|5 - call $~lib/util/number/genDigits + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|3 + local.get $buffer + local.set $buffer|4 + local.get $sign + local.set $sign|5 + local.get $value|3 + i64.reinterpret_f64 + local.set $uv + local.get $uv + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv + i64.const 4503599627370495 + i64.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid + i64.add + local.set $frc + local.get $exp + i32.const 1 + local.get $exp + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|12 + local.get $e + i32.const 1 + i32.sub + local.set $exp|13 + local.get $frc|12 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|12 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|12 + local.get $exp|13 + local.get $off + i32.sub + local.set $exp|13 + i32.const 1 + local.get $f + i64.const 4503599627370496 + i64.eq + i32.add + local.set $m + local.get $frc|12 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2952 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load $0 + global.set $~lib/util/number/_frc_pow + i32.const 3648 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s $0 + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|20 + local.get $frc + local.get $off|20 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|20 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|36 + local.get $frc_pow + local.set $v|37 + local.get $u|36 + i64.const 4294967295 + i64.and + local.set $u0|38 + local.get $v|37 + i64.const 4294967295 + i64.and + local.set $v0|39 + local.get $u|36 + i64.const 32 + i64.shr_u + local.set $u1|40 + local.get $v|37 + i64.const 32 + i64.shr_u + local.set $v1|41 + local.get $u0|38 + local.get $v0|39 + i64.mul + local.set $l|42 + local.get $u1|40 + local.get $v0|39 + i64.mul + local.get $l|42 + i64.const 32 + i64.shr_u + i64.add + local.set $t|43 + local.get $u0|38 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.const 4294967295 + i64.and + i64.add + local.set $w|44 + local.get $w|44 + i64.const 2147483647 + i64.add + local.set $w|44 + local.get $t|43 + i64.const 32 + i64.shr_u + local.set $t|43 + local.get $w|44 + i64.const 32 + i64.shr_u + local.set $w|44 + local.get $u1|40 + local.get $v1|41 + i64.mul + local.get $t|43 + i64.add + local.get $w|44 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|46 + local.get $exp_pow + local.set $e2|47 + local.get $e1|46 + local.get $e2|47 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|49 + local.get $frc_pow + local.set $v|50 + local.get $u|49 + i64.const 4294967295 + i64.and + local.set $u0|51 + local.get $v|50 + i64.const 4294967295 + i64.and + local.set $v0|52 + local.get $u|49 + i64.const 32 + i64.shr_u + local.set $u1|53 + local.get $v|50 + i64.const 32 + i64.shr_u + local.set $v1|54 + local.get $u0|51 + local.get $v0|52 + i64.mul + local.set $l|55 + local.get $u1|53 + local.get $v0|52 + i64.mul + local.get $l|55 + i64.const 32 + i64.shr_u + i64.add + local.set $t|56 + local.get $u0|51 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.const 4294967295 + i64.and + i64.add + local.set $w|57 + local.get $w|57 + i64.const 2147483647 + i64.add + local.set $w|57 + local.get $t|56 + i64.const 32 + i64.shr_u + local.set $t|56 + local.get $w|57 + i64.const 32 + i64.shr_u + local.set $w|57 + local.get $u1|53 + local.get $v1|54 + i64.mul + local.get $t|56 + i64.add + local.get $w|57 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|4 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|5 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 + end local.set $len local.get $buffer local.get $sign @@ -4259,10 +4301,12 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/number/F64#toString (type $f64_i32_=>_i32) (param $this f64) (param $radix i32) (result i32) local.get $this call $~lib/util/number/dtoa + return ) (func $templateliteral/Ref#set:value (type $i32_i32_=>_none) (param $this i32) (param $value i32) local.get $this @@ -4277,6 +4321,7 @@ local.get $left local.get $right call $~lib/string/String#concat + return ) (func $templateliteral/RecursiveObject#set:key (type $i32_i32_=>_none) (param $this i32) (param $key i32) local.get $this @@ -4364,7 +4409,6 @@ (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (type $i32_i32_=>_none) (param $this i32) (param $cookie i32) (local $cur i32) (local $end i32) - (local $4 i32) (local $val i32) i32.const 1 drop @@ -4381,8 +4425,6 @@ local.get $cur local.get $end i32.lt_u - local.set $4 - local.get $4 if local.get $cur i32.load $0 @@ -5176,6 +5218,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + return ) (func $templateliteral/test_ref (type $none_=>_none) (local $a i32) @@ -5409,6 +5452,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + return ) (func $templateliteral/test_recursive (type $none_=>_none) (local $c i32) @@ -5552,6 +5596,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 + return ) (func $~lib/util/string/joinStringArray (type $i32_i32_i32_=>_i32) (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -5559,14 +5604,12 @@ (local $estLen i32) (local $value i32) (local $i i32) - (local $8 i32) (local $offset i32) (local $sepLen i32) (local $result i32) - (local $i|12 i32) - (local $13 i32) + (local $i|11 i32) (local $valueLen i32) - (local $15 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -5587,12 +5630,12 @@ i32.lt_s if i32.const 160 - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 return end local.get $lastIndex @@ -5609,12 +5652,12 @@ else i32.const 160 end - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 return end i32.const 0 @@ -5625,8 +5668,6 @@ local.get $i local.get $length i32.lt_s - local.set $8 - local.get $8 if global.get $~lib/memory/__stack_pointer local.get $dataStart @@ -5672,17 +5713,15 @@ local.tee $result i32.store $0 offset=8 i32.const 0 - local.set $i|12 + local.set $i|11 loop $for-loop|1 - local.get $i|12 + local.get $i|11 local.get $lastIndex i32.lt_s - local.set $13 - local.get $13 if global.get $~lib/memory/__stack_pointer local.get $dataStart - local.get $i|12 + local.get $i|11 i32.const 2 i32.shl i32.add @@ -5728,10 +5767,10 @@ i32.add local.set $offset end - local.get $i|12 + local.get $i|11 i32.const 1 i32.add - local.set $i|12 + local.set $i|11 br $for-loop|1 end end @@ -5761,12 +5800,13 @@ memory.copy $0 $0 end local.get $result - local.set $15 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $13 + return ) (func $~lib/util/number/itoa32 (type $i32_i32_=>_i32) (param $value i32) (param $radix i32) (result i32) (local $sign i32) @@ -5948,6 +5988,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $14 + return ) (func $~lib/util/number/dtoa (type $f64_=>_i32) (param $value f64) (result i32) (local $size i32) @@ -6031,6 +6072,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + return ) (func $templateliteral/Ref#constructor (type $i32_i32_=>_i32) (param $this i32) (param $value i32) (result i32) (local $2 i32) diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 53f49e799b..d01486b9be 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -1,8 +1,8 @@ (module (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $none_=>_none (func_subtype func)) - (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) + (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $f64_=>_i32 (func_subtype (param f64) (result i32) func)) @@ -1733,6 +1733,225 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (type $i32_=>_i32) (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 + local.tee $3 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 2 + i32.shr_u + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + if + i32.const 38496 + i32.const 38544 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store $0 + local.get $0 + i32.const 0 + i32.store $0 offset=8 + block $__inlined_func$~lib/util/string/joinStringArray + local.get $5 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1184 + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $3 + i32.load $0 + local.tee $0 + i32.store $0 + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 1184 + local.get $0 + select + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $4 + i32.store $0 offset=4 + local.get $4 + if + local.get $1 + local.get $4 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $1 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $6 + i32.const 1180 + i32.load $0 + i32.const 1 + i32.shr_u + local.tee $5 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store $0 offset=8 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $4 + i32.store $0 offset=4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $4 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 1 + i32.shl + memory.copy $0 $0 + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 1184 + local.get $5 + i32.const 1 + i32.shl + memory.copy $0 $0 + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load $0 + local.tee $1 + i32.store $0 offset=4 + local.get $1 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load $0 offset=16 + i32.const -2 + i32.and + memory.copy $0 $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) (func $~lib/util/number/utoa32_dec_lut (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $while-continue|0 @@ -3190,11 +3409,7 @@ i32.const 1184 i32.store $0 offset=20 i32.const 1744 - i32.const 1740 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3316,11 +3531,7 @@ i32.const 1184 i32.store $0 offset=12 i32.const 3680 - i32.const 3676 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3442,11 +3653,7 @@ i32.const 1184 i32.store $0 offset=12 i32.const 4976 - i32.const 4972 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3580,11 +3787,7 @@ i32.const 1184 i32.store $0 offset=20 i32.const 5440 - i32.const 5436 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3720,17 +3923,17 @@ i32.sub i32.load $0 offset=16 i32.add - local.set $1 + local.set $2 loop $while-continue|0 local.get $0 - local.get $1 + local.get $2 i32.lt_u if local.get $0 i32.load $0 - local.tee $2 + local.tee $1 if - local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__visit end local.get $0 @@ -4093,11 +4296,7 @@ i32.const 1184 i32.store $0 offset=16 i32.const 5616 - i32.const 5612 - i32.load $0 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinStringArray + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -4174,212 +4373,6 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/util/string/joinStringArray (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - if - i32.const 38496 - i32.const 38544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store $0 - local.get $4 - i32.const 0 - i32.store $0 offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1184 - return - end - local.get $4 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load $0 - local.tee $0 - i32.store $0 - local.get $1 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 1184 - local.get $0 - select - return - end - loop $for-loop|0 - local.get $1 - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $5 - i32.store $0 offset=4 - local.get $5 - if - local.get $2 - local.get $5 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $2 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1180 - i32.load $0 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $4 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store $0 offset=8 - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $6 - i32.store $0 offset=4 - local.get $6 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $6 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - i32.const 1 - i32.shl - memory.copy $0 $0 - local.get $1 - local.get $6 - i32.add - local.set $1 - end - local.get $3 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $3 - i32.const 1 - i32.shl - memory.copy $0 $0 - local.get $1 - local.get $3 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load $0 - local.tee $0 - i32.store $0 offset=4 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load $0 offset=16 - i32.const -2 - i32.and - memory.copy $0 $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) (func $templateliteral/Ref#constructor (type $i32_=>_i32) (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/ternary.debug.wat b/tests/compiler/ternary.debug.wat index 6b7c32a486..88c9f65163 100644 --- a/tests/compiler/ternary.debug.wat +++ b/tests/compiler/ternary.debug.wat @@ -40,6 +40,7 @@ else local.get $z end + return ) (func $ternary/testDropWithTypeMismatch (type $i32_=>_none) (param $cond i32) (local $x i32) diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index 432aab49ab..7cc2066fa5 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -93,7 +93,6 @@ (func $throw/doThrowIfLoop (type $i32_=>_none) (param $max i32) (local $a i32) (local $i i32) - (local $3 i32) (local $b i32) (local $c i32) (local $d i32) @@ -120,8 +119,6 @@ local.tee $i local.get $max i32.lt_s - local.set $3 - local.get $3 if global.get $~lib/memory/__stack_pointer i32.const 64 @@ -176,6 +173,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -188,17 +186,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -210,8 +209,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -354,6 +351,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -373,6 +371,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -458,15 +457,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -493,6 +489,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -668,22 +665,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -708,16 +708,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -813,18 +816,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -848,18 +854,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -869,12 +878,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1022,22 +1034,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1082,16 +1097,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1146,10 +1164,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1265,6 +1286,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1274,15 +1296,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1343,17 +1363,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1365,22 +1383,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1453,6 +1469,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1513,8 +1530,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1559,8 +1574,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1610,8 +1623,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1693,10 +1704,9 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -1707,8 +1717,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -1722,8 +1730,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index dfb7f56970..d171cb219b 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func_subtype func)) - (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_none (func_subtype (param i32) func)) + (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -48,8 +48,20 @@ (func $~lib/rt/itcms/visitRoots (type $none_=>_none) (local $0 i32) (local $1 i32) - i32.const 1488 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/white + i32.const 1472 + i32.load $0 + i32.const 3 + i32.and + i32.eq + if + i32.const 1468 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end global.get $~lib/rt/itcms/pinSpace local.tee $1 i32.load $0 offset=4 @@ -88,6 +100,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34516 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1728 + i32.load $0 + i32.gt_u + if + i32.const 1488 + i32.const 1552 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1732 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1110,146 +1254,18 @@ end ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34516 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1728 - i32.load $0 - i32.gt_u - if - i32.const 1488 - i32.const 1552 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1732 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 88def77afc..f45ca3449d 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -10,5 +10,6 @@ (export "memory" (memory $0)) (func $typealias/alias (type $i32_=>_i32) (param $a i32) (result i32) local.get $a + return ) ) diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index 107e55ed6b..1a5cc87731 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -73,12 +73,12 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.const 1 i32.shr_u + return ) (func $~lib/util/string/compareImpl (type $i32_i32_i32_i32_i32_=>_i32) (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) (local $7 i32) - (local $8 i32) (local $a i32) (local $b i32) local.get $str1 @@ -149,8 +149,6 @@ i32.sub local.set $len local.get $7 - local.set $8 - local.get $8 if local.get $ptr1 i32.load16_u $0 @@ -179,6 +177,7 @@ end end i32.const 0 + return ) (func $~lib/string/String.__eq (type $i32_i32_=>_i32) (param $left i32) (param $right i32) (result i32) (local $leftLength i32) @@ -221,6 +220,7 @@ local.get $leftLength call $~lib/util/string/compareImpl i32.eqz + return ) (func $start:typeof~anonymous|0 (type $none_=>_none) nop @@ -243,6 +243,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -255,17 +256,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -277,8 +279,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -421,6 +421,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -440,6 +441,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -525,15 +527,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -560,6 +559,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -735,22 +735,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -775,16 +778,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -880,18 +886,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -915,18 +924,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -936,12 +948,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1089,22 +1104,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1149,16 +1167,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1213,10 +1234,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1332,6 +1356,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1341,15 +1366,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1410,17 +1433,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1432,22 +1453,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1520,6 +1539,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1580,8 +1600,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1626,8 +1644,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1677,8 +1693,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -1760,6 +1774,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -1838,6 +1853,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -1853,6 +1869,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -1943,16 +1960,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -1985,16 +2005,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2008,46 +2031,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2084,10 +2114,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2207,30 +2240,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2301,6 +2340,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2313,6 +2353,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2375,6 +2416,7 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $~lib/rt/__visit_globals (type $i32_=>_none) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 27a30c8add..c33bbc7822 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) @@ -224,6 +224,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34588 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1792 + i32.load $0 + i32.gt_u + if + i32.const 1552 + i32.const 1616 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1796 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1989,146 +2121,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34588 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1792 - i32.load $0 - i32.gt_u - if - i32.const 1552 - i32.const 1616 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1796 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/compiler/unify-local-flags.debug.wat b/tests/compiler/unify-local-flags.debug.wat index a6880f7539..ac8ef9b17c 100644 --- a/tests/compiler/unify-local-flags.debug.wat +++ b/tests/compiler/unify-local-flags.debug.wat @@ -13,7 +13,6 @@ (func $unify-local-flags/testFor (type $none_=>_none) (local $x i32) (local $i i32) - (local $2 i32) i32.const 0 local.set $x i32.const 0 @@ -22,8 +21,6 @@ local.get $i i32.const 255 i32.lt_u - local.set $2 - local.get $2 if local.get $i local.set $x @@ -38,7 +35,6 @@ (func $unify-local-flags/testWhile (type $none_=>_none) (local $x i32) (local $i i32) - (local $2 i32) i32.const 0 local.set $x i32.const 0 @@ -49,8 +45,6 @@ i32.and i32.const 255 i32.lt_u - local.set $2 - local.get $2 if local.get $i local.set $x @@ -69,7 +63,7 @@ local.set $x i32.const 0 local.set $i - loop $do-loop|1 + loop $do-loop|2 local.get $i local.set $x local.get $i @@ -80,7 +74,7 @@ i32.and i32.const 255 i32.lt_u - br_if $do-loop|1 + br_if $do-loop|2 end ) ) diff --git a/tests/compiler/unify-local-flags.release.wat b/tests/compiler/unify-local-flags.release.wat index ddd36c94cc..f34ecdf68b 100644 --- a/tests/compiler/unify-local-flags.release.wat +++ b/tests/compiler/unify-local-flags.release.wat @@ -39,7 +39,7 @@ ) (func $unify-local-flags/testDo (type $none_=>_none) (local $0 i32) - loop $do-loop|1 + loop $do-loop|2 local.get $0 i32.const 1 i32.add @@ -48,7 +48,7 @@ i32.and i32.const 255 i32.lt_u - br_if $do-loop|1 + br_if $do-loop|2 end ) ) diff --git a/tests/compiler/void.debug.wat b/tests/compiler/void.debug.wat index 1ce2d20965..47d7563b8c 100644 --- a/tests/compiler/void.debug.wat +++ b/tests/compiler/void.debug.wat @@ -13,6 +13,7 @@ (start $~start) (func $void/anInt (type $none_=>_i32) (result i32) i32.const 2 + return ) (func $start:void (type $none_=>_none) i32.const 1 diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index 41405a0dc2..cbfbee7a52 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -46,15 +46,12 @@ (func $while/testSimple (type $none_=>_none) (local $i i32) (local $j i32) - (local $2 i32) i32.const 10 local.set $i i32.const 0 local.set $j loop $while-continue|0 local.get $i - local.set $2 - local.get $2 if local.get $i i32.const 1 @@ -98,8 +95,6 @@ (local $i i32) (local $j i32) (local $k i32) - (local $3 i32) - (local $4 i32) i32.const 10 local.set $i i32.const 0 @@ -108,8 +103,6 @@ local.set $k loop $while-continue|0 local.get $i - local.set $3 - local.get $3 if local.get $i i32.const 1 @@ -121,8 +114,6 @@ local.set $j loop $while-continue|1 local.get $i - local.set $4 - local.get $4 if local.get $i i32.const 1 @@ -205,7 +196,6 @@ (local $i i32) (local $j i32) (local $2 i32) - (local $3 i32) i32.const 1 local.set $i i32.const 0 @@ -225,8 +215,6 @@ else i32.const 0 end - local.set $3 - local.get $3 if nop br $while-continue|0 @@ -261,14 +249,11 @@ ) (func $while/testAlwaysTrue (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 local.set $i block $while-break|0 loop $while-continue|0 i32.const 1 - local.set $1 - local.get $1 if local.get $i i32.const 1 @@ -300,13 +285,10 @@ ) (func $while/testAlwaysTrueNeverBreaks (type $none_=>_i32) (result i32) (local $i i32) - (local $1 i32) i32.const 0 local.set $i loop $while-continue|0 i32.const 1 - local.set $1 - local.get $1 if local.get $i i32.const 1 @@ -346,7 +328,6 @@ ) (func $while/testAlwaysBreaks (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 local.set $i block $while-break|0 @@ -355,8 +336,6 @@ i32.const 1 i32.add local.tee $i - local.set $1 - local.get $1 if br $while-break|0 end @@ -379,7 +358,6 @@ ) (func $while/testAlwaysReturns (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 local.set $i loop $while-continue|0 @@ -387,8 +365,6 @@ i32.const 1 i32.add local.tee $i - local.set $1 - local.get $1 if i32.const 1 global.set $while/ran @@ -408,13 +384,10 @@ ) (func $while/testContinue (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 10 local.set $i loop $while-continue|0 local.get $i - local.set $1 - local.get $1 if local.get $i i32.const 1 @@ -441,21 +414,15 @@ (func $while/testNestedContinue (type $none_=>_none) (local $i i32) (local $j i32) - (local $2 i32) - (local $3 i32) i32.const 10 local.set $i i32.const 10 local.set $j loop $while-continue|0 local.get $i - local.set $2 - local.get $2 if loop $while-continue|1 local.get $j - local.set $3 - local.get $3 if local.get $j i32.const 1 @@ -516,6 +483,7 @@ local.get $space call $~lib/rt/itcms/Object#set:prev local.get $space + return ) (func $~lib/rt/itcms/Object#get:nextWithColor (type $i32_=>_i32) (param $this i32) (result i32) local.get $this @@ -528,17 +496,18 @@ i32.const -1 i32.xor i32.and + return ) (func $~lib/rt/itcms/Object#get:color (type $i32_=>_i32) (param $this i32) (result i32) local.get $this call $~lib/rt/itcms/Object#get:nextWithColor i32.const 3 i32.and + return ) (func $~lib/rt/itcms/visitRoots (type $i32_=>_none) (param $cookie i32) (local $pn i32) (local $iter i32) - (local $3 i32) local.get $cookie call $~lib/rt/__visit_globals global.get $~lib/rt/itcms/pinSpace @@ -550,8 +519,6 @@ local.get $iter local.get $pn i32.ne - local.set $3 - local.get $3 if i32.const 1 drop @@ -694,6 +661,7 @@ i32.mul i32.add call $~lib/shared/typeinfo/Typeinfo#get:flags + return ) (func $~lib/rt/itcms/Object#get:isPointerfree (type $i32_=>_i32) (param $this i32) (result i32) (local $rtId i32) @@ -713,6 +681,7 @@ i32.const 0 i32.ne end + return ) (func $~lib/rt/itcms/Object#linkTo (type $i32_i32_i32_=>_none) (param $this i32) (param $list i32) (param $withColor i32) (local $prev i32) @@ -798,15 +767,12 @@ ) (func $~lib/rt/itcms/visitStack (type $i32_=>_none) (param $cookie i32) (local $ptr i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer local.set $ptr loop $while-continue|0 local.get $ptr global.get $~lib/memory/__heap_base i32.lt_u - local.set $2 - local.get $2 if local.get $ptr i32.load $0 @@ -833,6 +799,7 @@ i32.xor i32.and i32.add + return ) (func $~lib/rt/tlsf/Root#set:flMap (type $i32_i32_=>_none) (param $this i32) (param $flMap i32) local.get $this @@ -1008,22 +975,25 @@ call $~lib/rt/tlsf/Block#set:prev end local.get $block - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end i32.eq if local.get $root @@ -1048,16 +1018,19 @@ local.get $next i32.eqz if - local.get $root - local.set $root|18 - local.get $fl - local.set $fl|19 - local.get $root|18 - local.get $fl|19 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end local.set $slMap local.get $root local.set $root|21 @@ -1153,18 +1126,21 @@ call $~lib/builtins/abort unreachable end - local.get $block - local.set $block|3 - local.get $block|3 - i32.const 4 - i32.add - local.get $block|3 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1188,18 +1164,21 @@ i32.add local.tee $blockInfo call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end local.set $right local.get $right call $~lib/rt/common/BLOCK#get:mmInfo @@ -1209,12 +1188,15 @@ i32.const 2 i32.and if - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.sub - i32.load $0 + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load $0 + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end local.set $left local.get $left call $~lib/rt/common/BLOCK#get:mmInfo @@ -1362,22 +1344,25 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|16 - local.get $fl - local.set $fl|17 - local.get $sl - local.set $sl|18 - local.get $root|16 - local.get $fl|17 - i32.const 4 - i32.shl - local.get $sl|18 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end local.set $head local.get $block i32.const 0 @@ -1422,16 +1407,19 @@ local.set $root|26 local.get $fl local.set $fl|27 - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end i32.const 1 local.get $sl i32.shl @@ -1486,10 +1474,13 @@ i32.xor i32.and local.set $end - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end local.set $tail i32.const 0 local.set $tailInfo @@ -1605,6 +1596,7 @@ local.get $left call $~lib/rt/tlsf/insertBlock i32.const 1 + return ) (func $~lib/rt/tlsf/initialize (type $none_=>_none) (local $rootOffset i32) @@ -1614,15 +1606,13 @@ (local $root|4 i32) (local $tail i32) (local $fl i32) - (local $7 i32) - (local $root|8 i32) - (local $fl|9 i32) + (local $root|7 i32) + (local $fl|8 i32) (local $slMap i32) (local $sl i32) - (local $12 i32) - (local $root|13 i32) - (local $fl|14 i32) - (local $sl|15 i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 i32) (local $head i32) (local $memStart i32) i32.const 0 @@ -1683,17 +1673,15 @@ local.get $fl i32.const 23 i32.lt_u - local.set $7 - local.get $7 if local.get $root - local.set $root|8 + local.set $root|7 local.get $fl - local.set $fl|9 + local.set $fl|8 i32.const 0 local.set $slMap - local.get $root|8 - local.get $fl|9 + local.get $root|7 + local.get $fl|8 i32.const 2 i32.shl i32.add @@ -1705,22 +1693,20 @@ local.get $sl i32.const 16 i32.lt_u - local.set $12 - local.get $12 if local.get $root - local.set $root|13 + local.set $root|11 local.get $fl - local.set $fl|14 + local.set $fl|12 local.get $sl - local.set $sl|15 + local.set $sl|13 i32.const 0 local.set $head - local.get $root|13 - local.get $fl|14 + local.get $root|11 + local.get $fl|12 i32.const 4 i32.shl - local.get $sl|15 + local.get $sl|13 i32.add i32.const 2 i32.shl @@ -1793,6 +1779,7 @@ unreachable end local.get $block + return ) (func $~lib/rt/tlsf/freeBlock (type $i32_i32_=>_none) (param $root i32) (param $block i32) i32.const 0 @@ -1853,8 +1840,6 @@ (local $obj i32) (local $1 i32) (local $black i32) - (local $3 i32) - (local $4 i32) (local $from i32) block $break|0 block $case2|0 @@ -1899,8 +1884,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $3 - local.get $3 if local.get $obj global.set $~lib/rt/itcms/iter @@ -1950,8 +1933,6 @@ local.get $obj global.get $~lib/rt/itcms/toSpace i32.ne - local.set $4 - local.get $4 if local.get $obj call $~lib/rt/itcms/Object#get:color @@ -2033,6 +2014,7 @@ br $break|0 end i32.const 0 + return ) (func $~lib/rt/itcms/interrupt (type $none_=>_none) (local $budget i32) @@ -2111,6 +2093,7 @@ i32.const 4 i32.sub end + return ) (func $~lib/rt/tlsf/prepareSize (type $i32_=>_i32) (param $size i32) (result i32) local.get $size @@ -2126,6 +2109,7 @@ end local.get $size call $~lib/rt/tlsf/computeSize + return ) (func $~lib/rt/tlsf/searchBlock (type $i32_i32_=>_i32) (param $root i32) (param $size i32) (result i32) (local $fl i32) @@ -2216,16 +2200,19 @@ call $~lib/builtins/abort unreachable end - local.get $root - local.set $root|5 - local.get $fl - local.set $fl|6 - local.get $root|5 - local.get $fl|6 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end i32.const 0 i32.const -1 i32.xor @@ -2258,16 +2245,19 @@ local.get $flMap i32.ctz local.set $fl - local.get $root - local.set $root|10 - local.get $fl - local.set $fl|11 - local.get $root|10 - local.get $fl|11 - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=4 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end local.set $slMap i32.const 1 drop @@ -2281,46 +2271,53 @@ call $~lib/builtins/abort unreachable end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load $0 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $root - local.set $root|12 + local.set $root|15 local.get $fl - local.set $fl|13 + local.set $fl|16 local.get $slMap i32.ctz - local.set $sl|14 - local.get $root|12 - local.get $fl|13 + local.set $sl|17 + local.get $root|15 + local.get $fl|16 i32.const 4 i32.shl - local.get $sl|14 + local.get $sl|17 i32.add i32.const 2 i32.shl i32.add i32.load $0 offset=96 - local.set $head + br $~lib/rt/tlsf/GETHEAD|inlined.3 end - else - local.get $root - local.set $root|15 - local.get $fl - local.set $fl|16 - local.get $slMap - i32.ctz - local.set $sl|17 - local.get $root|15 - local.get $fl|16 - i32.const 4 - i32.shl - local.get $sl|17 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load $0 offset=96 local.set $head end local.get $head + return ) (func $~lib/rt/tlsf/growMemory (type $i32_i32_=>_none) (param $root i32) (param $size i32) (local $pagesBefore i32) @@ -2357,10 +2354,13 @@ i32.shl i32.const 4 i32.sub - local.get $root - local.set $root|3 - local.get $root|3 - i32.load $0 offset=1568 + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load $0 offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end i32.ne i32.shl i32.add @@ -2480,30 +2480,36 @@ i32.xor i32.and call $~lib/rt/common/BLOCK#set:mmInfo - local.get $block - local.set $block|7 - local.get $block|7 - i32.const 4 - i32.add - local.get $block|7 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $block - local.set $block|6 - local.get $block|6 - i32.const 4 - i32.add - local.get $block|6 - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end call $~lib/rt/common/BLOCK#get:mmInfo i32.const 2 i32.const -1 @@ -2574,6 +2580,7 @@ i32.const 0 drop local.get $block + return ) (func $~lib/rt/tlsf/__alloc (type $i32_=>_i32) (param $size i32) (result i32) global.get $~lib/rt/tlsf/ROOT @@ -2586,6 +2593,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add + return ) (func $~lib/rt/itcms/Object#set:rtId (type $i32_i32_=>_none) (param $this i32) (param $rtId i32) local.get $this @@ -2648,11 +2656,11 @@ local.get $size memory.fill $0 local.get $ptr + return ) (func $while/testRef (type $none_=>_none) (local $i i32) (local $ref i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2668,10 +2676,8 @@ call $while/Ref#constructor local.tee $ref i32.store $0 - loop $while-continue|0 + loop $while-continue|1 local.get $ref - local.set $2 - local.get $2 if local.get $i i32.const 1 @@ -2689,7 +2695,7 @@ local.tee $ref i32.store $0 end - br $while-continue|0 + br $while-continue|1 end end local.get $i @@ -2725,11 +2731,11 @@ (func $while/getRef (type $none_=>_i32) (result i32) i32.const 0 call $while/Ref#constructor + return ) (func $while/testRefAutorelease (type $none_=>_none) (local $i i32) (local $ref i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2748,8 +2754,6 @@ block $while-break|0 loop $while-continue|0 call $while/getRef - local.set $2 - local.get $2 if local.get $i i32.const 1 @@ -2798,14 +2802,11 @@ ) (func $while/testIfImplicitContinueThen (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 local.set $i block $while-break|0 loop $while-continue|0 i32.const 1 - local.set $1 - local.get $1 if local.get $i i32.const 1 @@ -2828,14 +2829,11 @@ ) (func $while/testIfImplicitContinueElse (type $none_=>_none) (local $i i32) - (local $1 i32) i32.const 0 local.set $i block $while-break|0 loop $while-continue|0 i32.const 1 - local.set $1 - local.get $1 if local.get $i i32.const 1 @@ -2889,8 +2887,6 @@ global.set $while/ran ) (func $~lib/rt/itcms/__collect (type $none_=>_none) - (local $0 i32) - (local $1 i32) i32.const 0 drop global.get $~lib/rt/itcms/state @@ -2901,8 +2897,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $0 - local.get $0 if call $~lib/rt/itcms/step drop @@ -2916,8 +2910,6 @@ global.get $~lib/rt/itcms/state i32.const 0 i32.ne - local.set $1 - local.get $1 if call $~lib/rt/itcms/step drop diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index f9935f9939..3796610b70 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func_subtype func)) + (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_=>_none (func_subtype (param i32 i32) func)) (type $none_=>_i32 (func_subtype (result i32) func)) (type $i32_=>_i32 (func_subtype (param i32) (result i32) func)) - (type $i32_=>_none (func_subtype (param i32) func)) (type $i32_i32_i32_i32_=>_none (func_subtype (param i32 i32 i32 i32) func)) (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -79,6 +79,138 @@ end end ) + (func $~lib/rt/itcms/Object#makeGray (type $i32_=>_none) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load $0 offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink + local.get $0 + i32.load $0 offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load $0 offset=8 + i32.eqz + local.get $0 + i32.const 34280 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink + end + local.get $0 + i32.load $0 offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store $0 offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load $0 offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1488 + i32.load $0 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load $0 + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load $0 offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store $0 offset=4 + local.get $0 + local.get $1 + i32.store $0 offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load $0 offset=4 + i32.const 3 + i32.and + i32.or + i32.store $0 offset=4 + local.get $2 + local.get $0 + i32.store $0 offset=8 + ) (func $~lib/rt/tlsf/removeBlock (type $i32_i32_=>_none) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1550,7 +1682,7 @@ call $while/Ref#constructor local.tee $0 i32.store $0 - loop $while-continue|08 + loop $while-continue|17 local.get $0 if local.get $1 @@ -1568,7 +1700,7 @@ local.tee $0 i32.store $0 end - br $while-continue|08 + br $while-continue|17 end end local.get $1 @@ -1613,10 +1745,10 @@ call $while/Ref#constructor local.tee $1 i32.store $0 - loop $while-continue|012 + loop $while-continue|010 call $while/Ref#constructor if - block $while-break|011 + block $while-break|09 local.get $0 i32.const 1 i32.add @@ -1626,9 +1758,9 @@ if i32.const 0 local.set $1 - br $while-break|011 + br $while-break|09 end - br $while-continue|012 + br $while-continue|010 end end end @@ -1841,146 +1973,18 @@ unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (type $i32_=>_none) (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/rt/itcms/white local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load $0 offset=4 i32.const 3 i32.and i32.eq if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load $0 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 - i32.load $0 offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load $0 offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $1 - i32.load $0 offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store $0 offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load $0 offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load $0 - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1492 - i32.add - i32.load $0 - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load $0 offset=8 - local.set $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store $0 offset=4 - local.get $1 - local.get $0 - i32.store $0 offset=8 local.get $0 - local.get $1 - local.get $0 - i32.load $0 offset=4 - i32.const 3 - i32.and - i32.or - i32.store $0 offset=4 - local.get $2 - local.get $1 - i32.store $0 offset=8 + call $~lib/rt/itcms/Object#makeGray global.get $~lib/rt/itcms/visitCount i32.const 1 i32.add diff --git a/tests/parser/definite-assignment-assertion.ts b/tests/parser/definite-assignment-assertion.ts index 05b3cd4f62..3b22d50510 100644 --- a/tests/parser/definite-assignment-assertion.ts +++ b/tests/parser/definite-assignment-assertion.ts @@ -1,9 +1,20 @@ +let x!: i32; +let x!: i32 = 0; // invalid +function f(): void { + let x!: i32; + let x!: i32 = 0; // invalid +} class C { x!: i32; x!: i32 = 0; // invalid - static x!: i32; // invlaid + static x!: i32; + static x!: i32 = 0; // invalid } -function f(): void { - let x!: i32; - let x!: i32 = 0; // invalid +interface I { + x!: i32; // not permitted + x!: i32 = 0; // invalid, not permitted +} +declare class C2 { + x!: i32; // not permitted + x!: i32 = 0; // invalid, not permitted, initializer generally not allowed } diff --git a/tests/parser/definite-assignment-assertion.ts.fixture.ts b/tests/parser/definite-assignment-assertion.ts.fixture.ts index 0d4b0e0405..5767c70868 100644 --- a/tests/parser/definite-assignment-assertion.ts.fixture.ts +++ b/tests/parser/definite-assignment-assertion.ts.fixture.ts @@ -1,12 +1,31 @@ +let x!: i32; +let x!: i32 = 0; +function f(): void { + let x!: i32; + let x!: i32 = 0; +} class C { x!: i32; x!: i32 = 0; static x!: i32; + static x!: i32 = 0; } -function f(): void { - let x!: i32; - let x!: i32 = 0; +interface I { + x!: i32; + x!: i32 = 0; +} +declare class C2 { + x!: i32; + x!: i32 = 0; } -// ERROR 1255: "A definite assignment assertion '!' is not permitted in this context." in definite-assignment-assertion.ts(3,3+11) -// ERROR 1255: "A definite assignment assertion '!' is not permitted in this context." in definite-assignment-assertion.ts(4,3+14) -// ERROR 1255: "A definite assignment assertion '!' is not permitted in this context." in definite-assignment-assertion.ts(8,7+11) +// ERROR 1263: "Declarations with initializers cannot also have definite assignment assertions." in definite-assignment-assertion.ts(2,15+1) +// ERROR 1263: "Declarations with initializers cannot also have definite assignment assertions." in definite-assignment-assertion.ts(5,17+1) +// ERROR 1263: "Declarations with initializers cannot also have definite assignment assertions." in definite-assignment-assertion.ts(9,3+1) +// ERROR 1263: "Declarations with initializers cannot also have definite assignment assertions." in definite-assignment-assertion.ts(11,10+1) +// ERROR 1255: "A definite assignment assertion '!' is not permitted in this context." in definite-assignment-assertion.ts(14,3+7) +// ERROR 1263: "Declarations with initializers cannot also have definite assignment assertions." in definite-assignment-assertion.ts(15,3+1) +// ERROR 1255: "A definite assignment assertion '!' is not permitted in this context." in definite-assignment-assertion.ts(15,3+11) +// ERROR 1255: "A definite assignment assertion '!' is not permitted in this context." in definite-assignment-assertion.ts(18,3+7) +// ERROR 1039: "Initializers are not allowed in ambient contexts." in definite-assignment-assertion.ts(19,11+1) +// ERROR 1263: "Declarations with initializers cannot also have definite assignment assertions." in definite-assignment-assertion.ts(19,3+1) +// ERROR 1255: "A definite assignment assertion '!' is not permitted in this context." in definite-assignment-assertion.ts(19,3+11)