diff --git a/src/builtins.ts b/src/builtins.ts index 1de377d9e2..69b35cfba9 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -53,7 +53,9 @@ import { getConstValueF64, Relooper, RelooperBlockRef, - SIMDLoadOp + SIMDLoadOp, + getLocalGetIndex, + hasSideEffects } from "./module"; import { @@ -516,6 +518,10 @@ export namespace BuiltinSymbols { export const visit_globals = "~lib/rt/__visit_globals"; export const visit_members = "~lib/rt/__visit_members"; + // std/number.ts + export const isNaN = "~lib/number/isNaN"; + export const isFinite = "~lib/number/isFinite"; + // std/diagnostics.ts export const ERROR = "~lib/diagnostics/ERROR"; export const WARNING = "~lib/diagnostics/WARNING"; @@ -1108,72 +1114,72 @@ export function compileCall( let flow = compiler.currentFlow; // possibly overflows, e.g. abs(-128) == 128 - let tempLocal1 = flow.getTempLocal(Type.i32); - let tempLocalIndex2 = flow.getAndFreeTempLocal(Type.i32).index; - let tempLocalIndex1 = tempLocal1.index; - flow.freeTempLocal(tempLocal1); - + let temp1 = flow.getTempLocal(Type.i32); + let temp2 = flow.getTempLocal(Type.i32); // (x + (x >> 31)) ^ (x >> 31) - return module.binary(BinaryOp.XorI32, + let ret = module.binary(BinaryOp.XorI32, module.binary(BinaryOp.AddI32, module.local_tee( - tempLocalIndex2, + temp2.index, module.binary(BinaryOp.ShrI32, - module.local_tee(tempLocalIndex1, arg0), + module.local_tee(temp1.index, arg0), module.i32(31) ) ), - module.local_get(tempLocalIndex1, NativeType.I32) + module.local_get(temp1.index, NativeType.I32) ), - module.local_get(tempLocalIndex2, NativeType.I32) + module.local_get(temp2.index, NativeType.I32) ); + flow.freeTempLocal(temp2); + flow.freeTempLocal(temp1); + return ret; } case TypeKind.ISIZE: { let options = compiler.options; let flow = compiler.currentFlow; let isWasm64 = options.isWasm64; - let tempLocal1 = flow.getTempLocal(options.usizeType); - let tempLocalIndex2 = flow.getAndFreeTempLocal(options.usizeType).index; - let tempLocalIndex1 = tempLocal1.index; - flow.freeTempLocal(tempLocal1); - - return module.binary(isWasm64 ? BinaryOp.XorI64 : BinaryOp.XorI32, + let temp1 = flow.getTempLocal(options.usizeType); + let temp2 = flow.getTempLocal(options.usizeType); + let ret = module.binary(isWasm64 ? BinaryOp.XorI64 : BinaryOp.XorI32, module.binary(isWasm64 ? BinaryOp.AddI64 : BinaryOp.AddI32, module.local_tee( - tempLocalIndex2, + temp2.index, module.binary(isWasm64 ? BinaryOp.ShrI64 : BinaryOp.ShrI32, - module.local_tee(tempLocalIndex1, arg0), + module.local_tee(temp1.index, arg0), isWasm64 ? module.i64(63) : module.i32(31) ) ), - module.local_get(tempLocalIndex1, options.nativeSizeType) + module.local_get(temp1.index, options.nativeSizeType) ), - module.local_get(tempLocalIndex2, options.nativeSizeType) + module.local_get(temp2.index, options.nativeSizeType) ); + flow.freeTempLocal(temp2); + flow.freeTempLocal(temp1); + return ret; } case TypeKind.I64: { let flow = compiler.currentFlow; - let tempLocal1 = flow.getTempLocal(Type.i64); - let tempLocalIndex2 = flow.getAndFreeTempLocal(Type.i64).index; - let tempLocalIndex1 = tempLocal1.index; - flow.freeTempLocal(tempLocal1); - + let temp1 = flow.getTempLocal(Type.i64); + let temp2 = flow.getTempLocal(Type.i64); // (x + (x >> 63)) ^ (x >> 63) - return module.binary(BinaryOp.XorI64, + let ret = module.binary(BinaryOp.XorI64, module.binary(BinaryOp.AddI64, module.local_tee( - tempLocalIndex2, + temp2.index, module.binary(BinaryOp.ShrI64, - module.local_tee(tempLocalIndex1, arg0), + module.local_tee(temp1.index, arg0), module.i64(63) ) ), - module.local_get(tempLocalIndex1, NativeType.I64) + module.local_get(temp1.index, NativeType.I64) ), - module.local_get(tempLocalIndex2, NativeType.I64) + module.local_get(temp2.index, NativeType.I64) ); + flow.freeTempLocal(temp2); + flow.freeTempLocal(temp1); + return ret; } case TypeKind.USIZE: case TypeKind.U8: @@ -1240,19 +1246,21 @@ export function compileCall( if (op != -1) { let flow = compiler.currentFlow; let nativeType = type.toNativeType(); - let tempLocal0 = flow.getTempLocal(type); - flow.setLocalFlag(tempLocal0.index, LocalFlags.WRAPPED); - let tempLocal1 = flow.getAndFreeTempLocal(type); - flow.setLocalFlag(tempLocal1.index, LocalFlags.WRAPPED); - flow.freeTempLocal(tempLocal0); - return module.select( - module.local_tee(tempLocal0.index, arg0), - module.local_tee(tempLocal1.index, arg1), + let temp1 = flow.getTempLocal(type); + flow.setLocalFlag(temp1.index, LocalFlags.WRAPPED); + let temp2 = flow.getTempLocal(type); + flow.setLocalFlag(temp2.index, LocalFlags.WRAPPED); + let ret = module.select( + module.local_tee(temp1.index, arg0), + module.local_tee(temp2.index, arg1), module.binary(op, - module.local_get(tempLocal0.index, nativeType), - module.local_get(tempLocal1.index, nativeType) + module.local_get(temp1.index, nativeType), + module.local_get(temp2.index, nativeType) ) ); + flow.freeTempLocal(temp2); + flow.freeTempLocal(temp1); + return ret; } } compiler.error( @@ -1310,19 +1318,21 @@ export function compileCall( if (op != -1) { let flow = compiler.currentFlow; let nativeType = type.toNativeType(); - let tempLocal0 = flow.getTempLocal(type); - flow.setLocalFlag(tempLocal0.index, LocalFlags.WRAPPED); - let tempLocal1 = flow.getAndFreeTempLocal(type); - flow.setLocalFlag(tempLocal1.index, LocalFlags.WRAPPED); - flow.freeTempLocal(tempLocal0); - return module.select( - module.local_tee(tempLocal0.index, arg0), - module.local_tee(tempLocal1.index, arg1), + let temp1 = flow.getTempLocal(type); + flow.setLocalFlag(temp1.index, LocalFlags.WRAPPED); + let temp2 = flow.getTempLocal(type); + flow.setLocalFlag(temp2.index, LocalFlags.WRAPPED); + let ret = module.select( + module.local_tee(temp1.index, arg0), + module.local_tee(temp2.index, arg1), module.binary(op, - module.local_get(tempLocal0.index, nativeType), - module.local_get(tempLocal1.index, nativeType) + module.local_get(temp1.index, nativeType), + module.local_get(temp2.index, nativeType) ) ); + flow.freeTempLocal(temp2); + flow.freeTempLocal(temp1); + return ret; } } compiler.error( @@ -2189,6 +2199,7 @@ export function compileCall( } } else { compiler.currentType = type.nonNullableType; + let flow = compiler.currentFlow; switch (compiler.currentType.kind) { case TypeKind.I8: case TypeKind.I16: @@ -2197,61 +2208,70 @@ export function compileCall( case TypeKind.U16: case TypeKind.U32: case TypeKind.BOOL: { - let flow = compiler.currentFlow; - let tempLocal = flow.getAndFreeTempLocal(type); - flow.setLocalFlag(tempLocal.index, LocalFlags.WRAPPED); // arg0 is wrapped - return module.if( - module.local_tee(tempLocal.index, arg0), - module.local_get(tempLocal.index, NativeType.I32), + let temp = flow.getTempLocal(type); + flow.setLocalFlag(temp.index, LocalFlags.WRAPPED); // arg0 is wrapped + let ret = module.if( + module.local_tee(temp.index, arg0), + module.local_get(temp.index, NativeType.I32), abort ); + flow.freeTempLocal(temp); + return ret; } case TypeKind.I64: case TypeKind.U64: { - let tempLocal = compiler.currentFlow.getAndFreeTempLocal(Type.i64); - return module.if( + let temp = flow.getTempLocal(Type.i64); + let ret = module.if( module.unary(UnaryOp.EqzI64, - module.local_tee(tempLocal.index, arg0) + module.local_tee(temp.index, arg0) ), abort, - module.local_get(tempLocal.index, NativeType.I64) + module.local_get(temp.index, NativeType.I64) ); + flow.freeTempLocal(temp); + return ret; } case TypeKind.ISIZE: case TypeKind.USIZE: { - let tempLocal = compiler.currentFlow.getAndFreeTempLocal(compiler.options.usizeType); - return module.if( + let temp = flow.getTempLocal(compiler.options.usizeType); + let ret = module.if( module.unary( compiler.options.isWasm64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32, - module.local_tee(tempLocal.index, arg0) + module.local_tee(temp.index, arg0) ), abort, - module.local_get(tempLocal.index, compiler.options.nativeSizeType) + module.local_get(temp.index, compiler.options.nativeSizeType) ); + flow.freeTempLocal(temp); + return ret; } case TypeKind.F32: { - let tempLocal = compiler.currentFlow.getAndFreeTempLocal(Type.f32); - return module.if( + let temp = flow.getTempLocal(Type.f32); + let ret = module.if( module.binary(BinaryOp.EqF32, - module.local_tee(tempLocal.index, arg0), + module.local_tee(temp.index, arg0), module.f32(0) ), abort, - module.local_get(tempLocal.index, NativeType.F32) + module.local_get(temp.index, NativeType.F32) ); + flow.freeTempLocal(temp); + return ret; } case TypeKind.F64: { - let tempLocal = compiler.currentFlow.getAndFreeTempLocal(Type.f64); - return module.if( + let temp = flow.getTempLocal(Type.f64); + let ret = module.if( module.binary(BinaryOp.EqF64, - module.local_tee(tempLocal.index, arg0), + module.local_tee(temp.index, arg0), module.f64(0) ), abort, - module.local_get(tempLocal.index, NativeType.F64) + module.local_get(temp.index, NativeType.F64) ); + flow.freeTempLocal(temp); + return ret; } } } @@ -4143,6 +4163,166 @@ export function compileCall( compiler.currentType = Type.void; return module.call(BuiltinSymbols.visit_members, [ arg0, arg1 ], NativeType.None); } + case BuiltinSymbols.isNaN: { + if ( + checkTypeOptional(typeArguments, reportNode, compiler) | + checkArgsRequired(operands, 1, reportNode, compiler) + ) { + compiler.currentType = Type.bool; + return module.unreachable(); + } + let arg0 = typeArguments + ? compiler.compileExpression(operands[0], typeArguments[0], Constraints.CONV_IMPLICIT) + : compiler.compileExpression(operands[0], Type.auto); + let type = compiler.currentType; + compiler.currentType = Type.bool; + if (!type.is(TypeFlags.REFERENCE)) { + switch (type.kind) { + // never NaN + case TypeKind.I8: + case TypeKind.I16: + case TypeKind.I32: + case TypeKind.I64: + case TypeKind.ISIZE: + case TypeKind.U8: + case TypeKind.U16: + case TypeKind.U32: + case TypeKind.U64: + case TypeKind.USIZE: { + return hasSideEffects(arg0) + ? module.block(null, [ + module.drop(arg0), + module.i32(0) + ], NativeType.I32) + : module.i32(0); + } + // (t = arg0) != t + case TypeKind.F32: { + if (getExpressionId(arg0) == ExpressionId.LocalGet) { + return module.binary(BinaryOp.NeF32, + arg0, + module.local_get(getLocalGetIndex(arg0), NativeType.F32) + ); + } + let flow = compiler.currentFlow; + let temp = flow.getTempLocal(Type.f32); + let ret = module.binary(BinaryOp.NeF32, + module.local_tee(temp.index, arg0), + module.local_get(temp.index, NativeType.F32) + ); + flow.freeTempLocal(temp); + return ret; + } + case TypeKind.F64: { + if (getExpressionId(arg0) == ExpressionId.LocalGet) { + return module.binary(BinaryOp.NeF64, + arg0, + module.local_get(getLocalGetIndex(arg0), NativeType.F64) + ); + } + let flow = compiler.currentFlow; + let temp = flow.getTempLocal(Type.f64); + let ret = module.binary(BinaryOp.NeF64, + module.local_tee(temp.index, arg0), + module.local_get(temp.index, NativeType.F64) + ); + flow.freeTempLocal(temp); + return ret; + } + } + } + compiler.error( + DiagnosticCode.Operation_0_cannot_be_applied_to_type_1, + reportNode.typeArgumentsRange, "isNaN", type.toString() + ); + return module.unreachable(); + } + case BuiltinSymbols.isFinite: { + if ( + checkTypeOptional(typeArguments, reportNode, compiler) | + checkArgsRequired(operands, 1, reportNode, compiler) + ) { + compiler.currentType = Type.bool; + return module.unreachable(); + } + let arg0 = typeArguments + ? compiler.compileExpression(operands[0], typeArguments[0], Constraints.CONV_IMPLICIT) + : compiler.compileExpression(operands[0], Type.auto); + let type = compiler.currentType; + compiler.currentType = Type.bool; + if (!type.is(TypeFlags.REFERENCE)) { + switch (type.kind) { + // always finite + case TypeKind.I8: + case TypeKind.I16: + case TypeKind.I32: + case TypeKind.I64: + case TypeKind.ISIZE: + case TypeKind.U8: + case TypeKind.U16: + case TypeKind.U32: + case TypeKind.U64: + case TypeKind.USIZE: { + return hasSideEffects(arg0) + ? module.block(null, [ + module.drop(arg0), + module.i32(1) + ], NativeType.I32) + : module.i32(1); + } + // (t = arg0) - t == 0 + case TypeKind.F32: { + if (getExpressionId(arg0) == ExpressionId.LocalGet) { + return module.binary(BinaryOp.EqF32, + module.binary(BinaryOp.SubF32, + arg0, + module.local_get(getLocalGetIndex(arg0), NativeType.F32) + ), + module.f32(0) + ); + } + let flow = compiler.currentFlow; + let temp = flow.getTempLocal(Type.f32); + let ret = module.binary(BinaryOp.EqF32, + module.binary(BinaryOp.SubF32, + module.local_tee(temp.index, arg0), + module.local_get(temp.index, NativeType.F32) + ), + module.f32(0) + ); + flow.freeTempLocal(temp); + return ret; + } + case TypeKind.F64: { + if (getExpressionId(arg0) == ExpressionId.LocalGet) { + return module.binary(BinaryOp.EqF64, + module.binary(BinaryOp.SubF64, + arg0, + module.local_get(getLocalGetIndex(arg0), NativeType.F64) + ), + module.f64(0) + ); + } + let flow = compiler.currentFlow; + let temp = flow.getTempLocal(Type.f64); + let ret = module.binary(BinaryOp.EqF64, + module.binary(BinaryOp.SubF64, + module.local_tee(temp.index, arg0), + module.local_get(temp.index, NativeType.F64) + ), + module.f64(0) + ); + flow.freeTempLocal(temp); + return ret; + } + } + } + compiler.error( + DiagnosticCode.Operation_0_cannot_be_applied_to_type_1, + reportNode.typeArgumentsRange, "isFinite", type.toString() + ); + return module.unreachable(); + } } // try to defer inline asm to a concrete built-in diff --git a/src/compiler.ts b/src/compiler.ts index 05ff1353d7..e74beb9383 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -1161,11 +1161,12 @@ export class Compiler extends DiagnosticEmitter { let canOverflow = flow.canOverflow(expr, returnType); let nonNull = flow.isNonnull(expr, returnType); if (stmts.length > indexBefore) { - let temp = flow.getAndFreeTempLocal(returnType); + let temp = flow.getTempLocal(returnType); if (!canOverflow) flow.setLocalFlag(temp.index, LocalFlags.WRAPPED); if (nonNull) flow.setLocalFlag(temp.index, LocalFlags.NONNULL); stmts[indexBefore - 1] = module.local_set(temp.index, expr); stmts.push(module.local_get(temp.index, returnType.toNativeType())); + flow.freeTempLocal(temp); } if (!canOverflow) flow.set(FlowFlags.RETURNS_WRAPPED); if (nonNull) flow.set(FlowFlags.RETURNS_NONNULL); @@ -2280,12 +2281,13 @@ export class Compiler extends DiagnosticEmitter { if (returnType.isManaged && !this.skippedAutoreleases.has(expr)) expr = this.makeRetain(expr); if (returnType != Type.void && stmts.length) { - let temp = flow.getAndFreeTempLocal(returnType); + let temp = flow.getTempLocal(returnType); if (flow.isNonnull(expr, returnType)) flow.setLocalFlag(temp.index, LocalFlags.NONNULL); stmts.unshift( module.local_set(temp.index, expr) ); expr = module.local_get(temp.index, returnType.toNativeType()); + flow.freeTempLocal(temp); } flow.freeScopedLocals(); @@ -3173,14 +3175,15 @@ export class Compiler extends DiagnosticEmitter { } else if (!this.options.noAssert) { let module = this.module; let flow = this.currentFlow; - let tempIndex = flow.getAndFreeTempLocal(type).index; - if (!flow.canOverflow(expr, type)) flow.setLocalFlag(tempIndex, LocalFlags.WRAPPED); - flow.setLocalFlag(tempIndex, LocalFlags.NONNULL); + let temp = flow.getTempLocal(type); + if (!flow.canOverflow(expr, type)) flow.setLocalFlag(temp.index, LocalFlags.WRAPPED); + flow.setLocalFlag(temp.index, LocalFlags.NONNULL); expr = module.if( - module.local_tee(tempIndex, expr), - module.local_get(tempIndex, type.toNativeType()), + module.local_tee(temp.index, expr), + module.local_get(temp.index, type.toNativeType()), module.unreachable() ); + flow.freeTempLocal(temp); } this.currentType = this.currentType.nonNullableType; return expr; @@ -5054,6 +5057,7 @@ export class Compiler extends DiagnosticEmitter { rightExpr, module.local_get(tempLocal.index, leftType.toNativeType()) ); + flow.freeTempLocal(tempLocal); } } this.currentType = leftType; @@ -5146,14 +5150,15 @@ export class Compiler extends DiagnosticEmitter { // if not possible, tee left to a temp. local } else { - let tempLocal = flow.getAndFreeTempLocal(leftType); - if (!flow.canOverflow(leftExpr, leftType)) flow.setLocalFlag(tempLocal.index, LocalFlags.WRAPPED); - if (flow.isNonnull(leftExpr, leftType)) flow.setLocalFlag(tempLocal.index, LocalFlags.NONNULL); + let temp = flow.getTempLocal(leftType); + if (!flow.canOverflow(leftExpr, leftType)) flow.setLocalFlag(temp.index, LocalFlags.WRAPPED); + if (flow.isNonnull(leftExpr, leftType)) flow.setLocalFlag(temp.index, LocalFlags.NONNULL); expr = module.if( - this.makeIsTrueish(module.local_tee(tempLocal.index, leftExpr), leftType), - module.local_get(tempLocal.index, leftType.toNativeType()), + this.makeIsTrueish(module.local_tee(temp.index, leftExpr), leftType), + module.local_get(temp.index, leftType.toNativeType()), rightExpr ); + flow.freeTempLocal(temp); } } this.currentType = leftType; @@ -5435,17 +5440,18 @@ export class Compiler extends DiagnosticEmitter { let returnType = getterInstance.signature.returnType; let nativeReturnType = returnType.toNativeType(); let thisExpr = this.compileExpression(assert(thisExpression), this.options.usizeType); - let tempLocal = flow.getAndFreeTempLocal(returnType); - let tempLocalIndex = tempLocal.index; - return module.block(null, [ + let temp = flow.getTempLocal(returnType); + let ret = module.block(null, [ this.makeCallDirect(setterInstance, [ // set and remember the target - module.local_tee(tempLocalIndex, thisExpr), + module.local_tee(temp.index, thisExpr), valueExpr ], valueExpression), this.makeCallDirect(getterInstance, [ // get from remembered target - module.local_get(tempLocalIndex, nativeReturnType) + module.local_get(temp.index, nativeReturnType) ], valueExpression) ], nativeReturnType); + flow.freeTempLocal(temp); + return ret; } case ElementKind.INDEXSIGNATURE: { if (this.skippedAutoreleases.has(valueExpr)) valueExpr = this.makeAutorelease(valueExpr, flow); // (*) @@ -5473,21 +5479,24 @@ export class Compiler extends DiagnosticEmitter { let thisExpr = this.compileExpression(assert(thisExpression), this.options.usizeType); let elementExpr = this.compileExpression(assert(indexExpression), Type.i32, Constraints.CONV_IMPLICIT); if (tee) { - let tempLocalTarget = flow.getTempLocal(targetType); - let tempLocalElement = flow.getAndFreeTempLocal(this.currentType); + let tempTarget = flow.getTempLocal(targetType); + let tempElement = flow.getTempLocal(this.currentType); let returnType = indexedGet.signature.returnType; - flow.freeTempLocal(tempLocalTarget); - return module.block(null, [ + flow.freeTempLocal(tempTarget); + let ret = module.block(null, [ this.makeCallDirect(indexedSet, [ - module.local_tee(tempLocalTarget.index, thisExpr), - module.local_tee(tempLocalElement.index, elementExpr), + module.local_tee(tempTarget.index, thisExpr), + module.local_tee(tempElement.index, elementExpr), valueExpr ], valueExpression), this.makeCallDirect(indexedGet, [ - module.local_get(tempLocalTarget.index, tempLocalTarget.type.toNativeType()), - module.local_get(tempLocalElement.index, tempLocalElement.type.toNativeType()) + module.local_get(tempTarget.index, tempTarget.type.toNativeType()), + module.local_get(tempElement.index, tempElement.type.toNativeType()) ], valueExpression) ], returnType.toNativeType()); + flow.freeTempLocal(tempElement); + flow.freeTempLocal(tempTarget); + return ret; } else { return this.makeCallDirect(indexedSet, [ thisExpr, @@ -5679,12 +5688,10 @@ export class Compiler extends DiagnosticEmitter { let tempThis = flow.getTempLocal(thisType); if (this.skippedAutoreleases.has(valueExpr)) { if (tee) { // ((t1 = this).field = __skippedRelease(t1.field, t2 = value)), t2 - let tempValue = flow.getAndFreeTempLocal(fieldType); + let tempValue = flow.getTempLocal(fieldType); if (!flow.canOverflow(valueExpr, fieldType)) flow.setLocalFlag(tempValue.index, LocalFlags.WRAPPED); if (flow.isNonnull(valueExpr, fieldType)) flow.setLocalFlag(tempValue.index, LocalFlags.NONNULL); - flow.freeTempLocal(tempThis); - this.currentType = fieldType; - return module.block(null, [ + let ret = module.block(null, [ module.store(fieldType.byteSize, module.local_tee(tempThis.index, thisExpr), this.makeSkippedRelease( @@ -5698,6 +5705,10 @@ export class Compiler extends DiagnosticEmitter { ), module.local_get(tempValue.index, nativeFieldType) ], nativeFieldType); + flow.freeTempLocal(tempValue); + flow.freeTempLocal(tempThis); + this.currentType = fieldType; + return ret; } else { // (t1 = this).field = __skippedRelease(t1.field, value) flow.freeTempLocal(tempThis); this.currentType = Type.void; @@ -5715,12 +5726,10 @@ export class Compiler extends DiagnosticEmitter { } } else { if (tee) { // ((t1 = this).field = __retainRelease(t1.field, t2 = value)), t2 - let tempValue = flow.getAndFreeTempLocal(fieldType); + let tempValue = flow.getTempLocal(fieldType); if (!flow.canOverflow(valueExpr, fieldType)) flow.setLocalFlag(tempValue.index, LocalFlags.WRAPPED); if (flow.isNonnull(valueExpr, fieldType)) flow.setLocalFlag(tempValue.index, LocalFlags.NONNULL); - flow.freeTempLocal(tempThis); - this.currentType = fieldType; - return module.block(null, [ + let ret = module.block(null, [ module.store(fieldType.byteSize, module.local_tee(tempThis.index, thisExpr), this.makeRetainRelease( @@ -5734,6 +5743,10 @@ export class Compiler extends DiagnosticEmitter { ), module.local_get(tempValue.index, nativeFieldType) ], nativeFieldType); + flow.freeTempLocal(tempValue); + flow.freeTempLocal(tempThis); + this.currentType = fieldType; + return ret; } else { // (t1 = this).field = __retainRelease(t1.field, value) flow.freeTempLocal(tempThis); this.currentType = Type.void; @@ -5752,11 +5765,10 @@ export class Compiler extends DiagnosticEmitter { } } else { if (tee) { // (this.field = (t1 = value)), t1 - let tempValue = flow.getAndFreeTempLocal(fieldType); + let tempValue = flow.getTempLocal(fieldType); if (!flow.canOverflow(valueExpr, fieldType)) flow.setLocalFlag(tempValue.index, LocalFlags.WRAPPED); if (flow.isNonnull(valueExpr, fieldType)) flow.setLocalFlag(tempValue.index, LocalFlags.NONNULL); - this.currentType = fieldType; - return module.block(null, [ + let ret = module.block(null, [ module.store(fieldType.byteSize, thisExpr, module.local_tee(tempValue.index, valueExpr), @@ -5764,6 +5776,9 @@ export class Compiler extends DiagnosticEmitter { ), module.local_get(tempValue.index, nativeFieldType) ], nativeFieldType); + flow.freeTempLocal(tempValue); + this.currentType = fieldType; + return ret; } else { // this.field = value this.currentType = Type.void; return module.store(fieldType.byteSize, @@ -6483,9 +6498,8 @@ export class Compiler extends DiagnosticEmitter { var usizeType = this.options.usizeType; var nativeSizeType = this.options.nativeSizeType; var temp1 = flow.getTempLocal(usizeType, findUsedLocals(oldExpr)); - var temp2 = flow.getAndFreeTempLocal(usizeType); - flow.freeTempLocal(temp1); - return module.block(null, [ + var temp2 = flow.getTempLocal(usizeType); + var ret = module.block(null, [ module.if( module.binary(nativeSizeType == NativeType.I64 ? BinaryOp.NeI64 : BinaryOp.NeI32, module.local_tee(temp1.index, newExpr), @@ -6500,6 +6514,9 @@ export class Compiler extends DiagnosticEmitter { ), module.local_get(temp1.index, nativeSizeType) ], nativeSizeType); + flow.freeTempLocal(temp2); + flow.freeTempLocal(temp1); + return ret; } /** Makes a skippedRelease call, ignoring the new expression's value and releasing the old expression's value, in this order. */ @@ -6510,12 +6527,14 @@ export class Compiler extends DiagnosticEmitter { var flow = this.currentFlow; var usizeType = this.options.usizeType; var nativeSizeType = this.options.nativeSizeType; - var temp = flow.getAndFreeTempLocal(usizeType, findUsedLocals(oldExpr)); - return module.block(null, [ + var temp = flow.getTempLocal(usizeType, findUsedLocals(oldExpr)); + var ret = module.block(null, [ module.local_set(temp.index, newExpr), this.makeRelease(oldExpr), module.local_get(temp.index, nativeSizeType) ], nativeSizeType); + flow.freeTempLocal(temp); + return ret; } /** Makes a release call, releasing the expression's value. Changes the current type to void.*/ @@ -6615,7 +6634,7 @@ export class Compiler extends DiagnosticEmitter { this.performAutoreleases(flow, stmts, clearFlags); if (stmts.length > lengthBefore) { let nativeType = valueType.toNativeType(); - let temp = flow.getAndFreeTempLocal(valueType); + let temp = flow.getTempLocal(valueType); if (!flow.canOverflow(valueExpr, valueType)) flow.setLocalFlag(temp.index, LocalFlags.WRAPPED); if (flow.isNonnull(valueExpr, valueType)) flow.setLocalFlag(temp.index, LocalFlags.NONNULL); let module = this.module; @@ -6623,7 +6642,9 @@ export class Compiler extends DiagnosticEmitter { stmts.push( module.local_get(temp.index, nativeType) // append get ); - return module.block(null, stmts, nativeType); + let ret = module.block(null, stmts, nativeType); + flow.freeTempLocal(temp); + return ret; } else if (stmts.length > 1) { stmts[lengthBefore - 1] = valueExpr; // nop -> value return this.module.block(null, stmts, valueType.toNativeType()); @@ -7346,22 +7367,24 @@ export class Compiler extends DiagnosticEmitter { let program = this.program; if (!(actualType.isUnmanaged || expectedType.isUnmanaged)) { let flow = this.currentFlow; - let tempLocal = flow.getAndFreeTempLocal(actualType); + let temp = flow.getTempLocal(actualType); let instanceofInstance = assert(program.instanceofInstance); this.compileFunction(instanceofInstance); - return module.if( + let ret = module.if( module.unary( nativeSizeType == NativeType.I64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32, - module.local_tee(tempLocal.index, expr), + module.local_tee(temp.index, expr), ), module.i32(0), this.makeCallDirect(instanceofInstance, [ - module.local_get(tempLocal.index, nativeSizeType), + module.local_get(temp.index, nativeSizeType), module.i32(expectedType.classReference!.id) ], expression) ); + flow.freeTempLocal(temp); + return ret; } else { this.error( DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, @@ -7388,22 +7411,24 @@ export class Compiler extends DiagnosticEmitter { // perform null checking, which would error earlier when checking // uninitialized (thus zero) `var a: A` to be an instance of something. let flow = this.currentFlow; - let tempLocal = flow.getAndFreeTempLocal(actualType); + let temp = flow.getTempLocal(actualType); let instanceofInstance = assert(program.instanceofInstance); this.compileFunction(instanceofInstance); - return module.if( + let ret = module.if( module.unary( nativeSizeType == NativeType.I64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32, - module.local_tee(tempLocal.index, expr), + module.local_tee(temp.index, expr), ), module.i32(0), this.makeCallDirect(instanceofInstance, [ - module.local_get(tempLocal.index, nativeSizeType), + module.local_get(temp.index, nativeSizeType), module.i32(expectedType.classReference!.id) ], expression) ); + flow.freeTempLocal(temp); + return ret; } else { this.error( DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, @@ -8637,7 +8662,7 @@ export class Compiler extends DiagnosticEmitter { // allow '!' for references even without an overload } - expr = this.makeIsFalseish(expr, this.currentType); + expr = module.unary(UnaryOp.EqzI32, this.makeIsTrueish(expr, this.currentType)); this.currentType = Type.bool; break; } @@ -8889,46 +8914,6 @@ export class Compiler extends DiagnosticEmitter { // === Specialized code generation ============================================================== - /** Creates a comparison whether an expression is 'false' in a broader sense. */ - makeIsFalseish(expr: ExpressionRef, type: Type): ExpressionRef { - var module = this.module; - switch (type.kind) { - case TypeKind.I8: - case TypeKind.I16: - case TypeKind.U8: - case TypeKind.U16: - case TypeKind.BOOL: { - expr = this.ensureSmallIntegerWrap(expr, type); - // fall-through - } - case TypeKind.I32: - case TypeKind.U32: { - return module.unary(UnaryOp.EqzI32, expr); - } - case TypeKind.I64: - case TypeKind.U64: { - return module.unary(UnaryOp.EqzI64, expr); - } - case TypeKind.USIZE: if (this.skippedAutoreleases.has(expr)) expr = this.makeAutorelease(expr); - case TypeKind.ISIZE: { - return module.unary(type.size == 64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32, expr); - } - case TypeKind.F32: { - return module.binary(BinaryOp.EqF32, expr, module.f32(0)); - } - case TypeKind.F64: { - return module.binary(BinaryOp.EqF64, expr, module.f64(0)); - } - // case TypeKind.ANYREF: { - // TODO: ref.is_null - // } - default: { - assert(false); - return module.i32(1); - } - } - } - /** Creates a comparison whether an expression is 'true' in a broader sense. */ makeIsTrueish(expr: ExpressionRef, type: Type): ExpressionRef { var module = this.module; @@ -8956,10 +8941,32 @@ export class Compiler extends DiagnosticEmitter { : expr; } case TypeKind.F32: { - return module.binary(BinaryOp.NeF32, expr, module.f32(0)); + // (x != 0.0) & (x == x) + let flow = this.currentFlow; + let temp = flow.getTempLocal(Type.f32); + let ret = module.binary(BinaryOp.AndI32, + module.binary(BinaryOp.NeF32, module.local_tee(temp.index, expr), module.f32(0)), + module.binary(BinaryOp.EqF32, + module.local_get(temp.index, NativeType.F32), + module.local_get(temp.index, NativeType.F32) + ) + ); + flow.freeTempLocal(temp); + return ret; } case TypeKind.F64: { - return module.binary(BinaryOp.NeF64, expr, module.f64(0)); + // (x != 0.0) & (x == x) + let flow = this.currentFlow; + let temp = flow.getTempLocal(Type.f64); + let ret = module.binary(BinaryOp.AndI32, + module.binary(BinaryOp.NeF64, module.local_tee(temp.index, expr), module.f64(0)), + module.binary(BinaryOp.EqF64, + module.local_get(temp.index, NativeType.F64), + module.local_get(temp.index, NativeType.F64) + ) + ); + flow.freeTempLocal(temp); + return ret; } // case TypeKind.ANYREF: { // TODO: !ref.is_null diff --git a/src/flow.ts b/src/flow.ts index 30db86e122..b992fcaade 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -384,13 +384,6 @@ export class Flow { temps.push(local); } - /** Gets and immediately frees a temporary local of the specified type. */ - getAndFreeTempLocal(type: Type, except: Set | null = null): Local { - var local = this.getTempLocal(type, except); - this.freeTempLocal(local); - return local; - } - /** Gets the scoped local of the specified name. */ getScopedLocal(name: string): Local | null { var scopedLocals = this.scopedLocals; diff --git a/src/module.ts b/src/module.ts index 22da5d6cb6..1b80a8209b 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1755,44 +1755,44 @@ export class Relooper { } } -// export function hasSideEffects(expr: ExpressionRef): bool { -// // TODO: there's more -// switch (_BinaryenExpressionGetId(expr)) { -// case ExpressionId.LocalGet: -// case ExpressionId.GlobalGet: -// case ExpressionId.Const: -// case ExpressionId.Nop: { -// return false; -// } -// case ExpressionId.Block: { -// for (let i = 0, k = _BinaryenBlockGetNumChildren(expr); i < k; ++i) { -// if (hasSideEffects(_BinaryenBlockGetChild(expr, i))) return true; -// } -// return false; -// } -// case ExpressionId.If: { -// return hasSideEffects(_BinaryenIfGetCondition(expr)) -// || hasSideEffects(_BinaryenIfGetIfTrue(expr)) -// || hasSideEffects(_BinaryenIfGetIfFalse(expr)); -// } -// case ExpressionId.Unary: { -// return hasSideEffects(_BinaryenUnaryGetValue(expr)); -// } -// case ExpressionId.Binary: { -// return hasSideEffects(_BinaryenBinaryGetLeft(expr)) -// || hasSideEffects(_BinaryenBinaryGetRight(expr)); -// } -// case ExpressionId.Drop: { -// return hasSideEffects(_BinaryenDropGetValue(expr)); -// } -// case ExpressionId.Select: { -// return hasSideEffects(_BinaryenSelectGetIfTrue(expr)) -// || hasSideEffects(_BinaryenSelectGetIfFalse(expr)) -// || hasSideEffects(_BinaryenSelectGetCondition(expr)); -// } -// } -// return true; -// } +export function hasSideEffects(expr: ExpressionRef): bool { + // TODO: there's more + switch (_BinaryenExpressionGetId(expr)) { + case ExpressionId.LocalGet: + case ExpressionId.GlobalGet: + case ExpressionId.Const: + case ExpressionId.Nop: { + return false; + } + case ExpressionId.Block: { + for (let i = 0, k = _BinaryenBlockGetNumChildren(expr); i < k; ++i) { + if (hasSideEffects(_BinaryenBlockGetChild(expr, i))) return true; + } + return false; + } + case ExpressionId.If: { + return hasSideEffects(_BinaryenIfGetCondition(expr)) + || hasSideEffects(_BinaryenIfGetIfTrue(expr)) + || hasSideEffects(_BinaryenIfGetIfFalse(expr)); + } + case ExpressionId.Unary: { + return hasSideEffects(_BinaryenUnaryGetValue(expr)); + } + case ExpressionId.Binary: { + return hasSideEffects(_BinaryenBinaryGetLeft(expr)) + || hasSideEffects(_BinaryenBinaryGetRight(expr)); + } + case ExpressionId.Drop: { + return hasSideEffects(_BinaryenDropGetValue(expr)); + } + case ExpressionId.Select: { + return hasSideEffects(_BinaryenSelectGetIfTrue(expr)) + || hasSideEffects(_BinaryenSelectGetIfFalse(expr)) + || hasSideEffects(_BinaryenSelectGetCondition(expr)); + } + } + return true; +} // helpers // can't do stack allocation here: STACKTOP is a global in WASM but a hidden variable in asm.js diff --git a/src/program.ts b/src/program.ts index f9ff2ea068..54366a679c 100644 --- a/src/program.ts +++ b/src/program.ts @@ -999,10 +999,10 @@ export class Program extends DiagnosticEmitter { return this.resolver.resolveFunction(prototype, null); } - /** Requires that a non-generic global function is present and returns it. */ - private requireFunction(name: string): Function { + /** Requires that a global function is present and returns it. */ + private requireFunction(name: string, typeArguments: Type[] | null = null): Function { var prototype = this.require(name, ElementKind.FUNCTION_PROTOTYPE); - var resolved = this.resolver.resolveFunction(prototype, null); + var resolved = this.resolver.resolveFunction(prototype, typeArguments); if (!resolved) throw new Error("invalid " + name); return resolved; } diff --git a/std/assembly/number.ts b/std/assembly/number.ts index 6d261fa158..9b61dc88dd 100644 --- a/std/assembly/number.ts +++ b/std/assembly/number.ts @@ -9,19 +9,13 @@ export const NaN: f64 = 0 / 0; @builtin @inline export const Infinity: f64 = 1 / 0; -export function isNaN(value: T): bool { - if (!isFloat()) { - if (!isInteger()) ERROR("numeric type expected"); - } - return value != value; -} +// @ts-ignore: decorator +@builtin +export declare function isNaN(value: T): bool; -export function isFinite(value: T): bool { - if (!isFloat()) { - if (!isInteger()) ERROR("numeric type expected"); - } - return value - value == 0; -} +// @ts-ignore: decorator +@builtin +export declare function isFinite(value: T): bool; @sealed @unmanaged export abstract class I8 { diff --git a/tests/compiler/binary.optimized.wat b/tests/compiler/binary.optimized.wat index 13bf5d6d21..91ecca9d9a 100644 --- a/tests/compiler/binary.optimized.wat +++ b/tests/compiler/binary.optimized.wat @@ -57,23 +57,22 @@ (local $4 i32) local.get $0 i32.reinterpret_f32 - local.tee $2 - i32.const -2147483648 - i32.and - local.set $4 - local.get $2 + local.tee $1 i32.const 23 i32.shr_u i32.const 255 i32.and - local.tee $3 + local.set $2 + local.get $1 + i32.const -2147483648 + i32.and + local.set $4 + i32.const 1 + i32.const 0 + local.get $2 i32.const 255 i32.eq - if (result i32) - i32.const 1 - else - i32.const 0 - end + select if local.get $0 local.get $0 @@ -81,50 +80,50 @@ return end block $folding-inner0 - local.get $2 + local.get $1 i32.const 1 i32.shl - local.tee $1 + local.tee $3 i32.const 2130706432 i32.le_u if - local.get $1 + local.get $3 i32.const 2130706432 i32.eq br_if $folding-inner0 local.get $0 return end - local.get $3 + local.get $2 if (result i32) - local.get $2 + local.get $1 i32.const 8388607 i32.and i32.const 8388608 i32.or else - local.get $2 + local.get $1 i32.const 1 - local.get $3 local.get $2 + local.get $1 i32.const 9 i32.shl i32.clz i32.sub - local.tee $3 + local.tee $2 i32.sub i32.shl end local.set $1 loop $continue|0 - local.get $3 + local.get $2 i32.const 127 i32.gt_s if local.get $1 i32.const 8388608 i32.ge_u - if (result i32) + if local.get $1 i32.const 8388608 i32.eq @@ -132,16 +131,16 @@ local.get $1 i32.const 8388608 i32.sub - else - local.get $1 + local.set $1 end + local.get $1 i32.const 1 i32.shl local.set $1 - local.get $3 + local.get $2 i32.const 1 i32.sub - local.set $3 + local.set $2 br $continue|0 end end @@ -163,27 +162,27 @@ i32.const 8 i32.shl i32.clz - local.tee $1 + local.tee $3 i32.shl - local.set $2 + local.set $1 + local.get $2 local.get $3 - local.get $1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.gt_s if (result i32) - local.get $2 + local.get $1 i32.const 8388608 i32.sub - local.get $1 + local.get $2 i32.const 23 i32.shl i32.or else - local.get $2 - i32.const 1 local.get $1 + i32.const 1 + local.get $2 i32.sub i32.shr_u end @@ -223,23 +222,22 @@ (local $4 i64) local.get $0 i64.reinterpret_f64 - local.tee $2 - i64.const 63 - i64.shr_u - local.set $4 - local.get $2 + local.tee $1 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $3 + local.set $2 + local.get $1 + i64.const 63 + i64.shr_u + local.set $4 + i32.const 1 + i32.const 0 + local.get $2 i64.const 2047 i64.eq - if (result i32) - i32.const 1 - else - i32.const 0 - end + select if local.get $0 local.get $0 @@ -247,38 +245,39 @@ return end block $folding-inner0 - local.get $2 + local.get $1 i64.const 1 i64.shl - local.tee $1 + local.tee $3 i64.const 9214364837600034816 i64.le_u if - local.get $1 + local.get $3 i64.const 9214364837600034816 i64.eq br_if $folding-inner0 local.get $0 return end - local.get $3 - i64.eqz + local.get $2 + i64.const 0 + i64.eq if (result i64) - local.get $2 + local.get $1 i64.const 0 - local.get $3 local.get $2 + local.get $1 i64.const 12 i64.shl i64.clz i64.sub - local.tee $3 + local.tee $2 i64.sub i64.const 1 i64.add i64.shl else - local.get $2 + local.get $1 i64.const 4503599627370495 i64.and i64.const 4503599627370496 @@ -286,14 +285,14 @@ end local.set $1 loop $continue|0 - local.get $3 + local.get $2 i64.const 1023 i64.gt_s if local.get $1 i64.const 4503599627370496 i64.ge_u - if (result i64) + if local.get $1 i64.const 4503599627370496 i64.eq @@ -301,16 +300,16 @@ local.get $1 i64.const 4503599627370496 i64.sub - else - local.get $1 + local.set $1 end + local.get $1 i64.const 1 i64.shl local.set $1 - local.get $3 + local.get $2 i64.const 1 i64.sub - local.set $3 + local.set $2 br $continue|0 end end @@ -332,27 +331,27 @@ i64.const 11 i64.shl i64.clz - local.tee $1 + local.tee $3 i64.shl - local.set $2 + local.set $1 + local.get $2 local.get $3 - local.get $1 i64.sub - local.tee $1 + local.tee $2 i64.const 0 i64.gt_s if (result i64) - local.get $2 + local.get $1 i64.const 4503599627370496 i64.sub - local.get $1 + local.get $2 i64.const 52 i64.shl i64.or else - local.get $2 - i64.const 0 local.get $1 + i64.const 0 + local.get $2 i64.sub i64.const 1 i64.add diff --git a/tests/compiler/binary.untouched.wat b/tests/compiler/binary.untouched.wat index cd0756c4cb..6986bd695f 100644 --- a/tests/compiler/binary.untouched.wat +++ b/tests/compiler/binary.untouched.wat @@ -2,9 +2,7 @@ (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) (type $FUNCSIG$ddi (func (param f64 i32) (result f64))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$ffi (func (param f32 i32) (result f32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$v (func)) (memory $0 0) (table $0 1 funcref) @@ -1187,12 +1185,7 @@ local.get $16 f64.mul ) - (func $~lib/number/isNaN (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/math/NativeMathf.mod (; 3 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 2 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1242,7 +1235,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne end if local.get $0 @@ -1439,7 +1433,7 @@ local.get $2 f32.reinterpret_i32 ) - (func $~lib/math/NativeMathf.scalbn (; 4 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 3 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -1529,7 +1523,7 @@ f32.reinterpret_i32 f32.mul ) - (func $~lib/math/NativeMathf.pow (; 5 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 4 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2463,12 +2457,7 @@ local.get $11 f32.mul ) - (func $~lib/number/isNaN (; 6 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/math/NativeMath.mod (; 7 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 5 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -2518,7 +2507,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne end if local.get $0 @@ -2551,7 +2541,9 @@ return end local.get $4 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $4 local.get $2 @@ -2583,7 +2575,9 @@ local.set $2 end local.get $5 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $5 local.get $3 @@ -2717,7 +2711,7 @@ local.get $2 f64.reinterpret_i64 ) - (func $start:binary (; 8 ;) (type $FUNCSIG$v) + (func $start:binary (; 6 ;) (type $FUNCSIG$v) global.get $binary/i i32.const 1 i32.lt_s @@ -3325,9 +3319,9 @@ call $~lib/math/NativeMath.pow global.set $binary/F ) - (func $start (; 9 ;) (type $FUNCSIG$v) + (func $start (; 7 ;) (type $FUNCSIG$v) call $start:binary ) - (func $null (; 10 ;) (type $FUNCSIG$v) + (func $null (; 8 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index 30087a8ee6..12067737ed 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -1,7 +1,5 @@ (module (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) @@ -47,34 +45,10 @@ (export "memory" (memory $0)) (export "test" (func $start:builtins~anonymous|1)) (start $start) - (func $~lib/number/isNaN (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/number/isFinite (; 3 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.sub - f32.const 0 - f32.eq - ) - (func $~lib/number/isNaN (; 4 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/number/isFinite (; 5 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $start:builtins~anonymous|0 (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $start:builtins~anonymous|0 (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/atomics/Atomics.isLockFree (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/atomics/Atomics.isLockFree (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 local.get $0 i32.const 4 @@ -89,7 +63,7 @@ select select ) - (func $~lib/string/String#get:length (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -97,7 +71,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 9 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 5 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -177,7 +151,7 @@ end i32.const 0 ) - (func $~lib/string/String.__eq (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -209,13 +183,13 @@ end i32.const 0 ) - (func $start:builtins~anonymous|1 (; 11 ;) (type $FUNCSIG$v) + (func $start:builtins~anonymous|1 (; 7 ;) (type $FUNCSIG$v) nop ) - (func $start:builtins~anonymous|2 (; 12 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $start:builtins~anonymous|2 (; 8 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) nop ) - (func $start:builtins (; 13 ;) (type $FUNCSIG$v) + (func $start:builtins (; 9 ;) (type $FUNCSIG$v) i32.const 31 global.set $builtins/i i32.const 0 @@ -259,70 +233,6 @@ call $~lib/builtins/abort unreachable end - f32.const 1.25 - call $~lib/number/isNaN - if - i32.const 0 - i32.const 64 - i32.const 104 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f32.const nan:0x400000 - call $~lib/number/isNaN - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 64 - i32.const 105 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f32.const 1.25 - call $~lib/number/isFinite - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 64 - i32.const 106 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f32.const inf - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 107 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f32.const -inf - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 108 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f32.const nan:0x400000 - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 109 - i32.const 0 - call $~lib/builtins/abort - unreachable - end f32.const nan:0x400000 global.set $builtins/f f32.const inf @@ -345,76 +255,10 @@ global.set $builtins/f f32.const 1 global.set $builtins/f - f32.const 1.25 - call $~lib/number/isNaN - global.set $builtins/b - f32.const 1.25 - call $~lib/number/isFinite + i32.const 0 global.set $builtins/b - f64.const 1.25 - call $~lib/number/isNaN - if - i32.const 0 - i32.const 64 - i32.const 140 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const nan:0x8000000000000 - call $~lib/number/isNaN - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 64 - i32.const 141 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 1.25 - call $~lib/number/isFinite i32.const 1 - i32.ne - if - i32.const 0 - i32.const 64 - i32.const 142 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const inf - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 143 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const -inf - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 144 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const nan:0x8000000000000 - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 145 - i32.const 0 - call $~lib/builtins/abort - unreachable - end + global.set $builtins/b f64.const nan:0x8000000000000 global.set $builtins/F f64.const inf @@ -437,17 +281,13 @@ global.set $builtins/F f64.const 1 global.set $builtins/F - f64.const 1.25 - call $~lib/number/isNaN + i32.const 0 global.set $builtins/b - f64.const 1.25 - call $~lib/number/isFinite + i32.const 1 global.set $builtins/b f64.const 0 global.set $builtins/F - f32.const 0 - global.get $builtins/f - f32.max + f32.const 1 global.set $builtins/f i32.const 8 i32.load @@ -642,90 +482,6 @@ i32.const 1 i32.const 2 call $start:builtins~anonymous|0 - f32.const nan:0x400000 - call $~lib/number/isNaN - i32.eqz - if - i32.const 0 - i32.const 64 - i32.const 299 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const nan:0x8000000000000 - call $~lib/number/isNaN - i32.eqz - if - i32.const 0 - i32.const 64 - i32.const 300 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f32.const nan:0x400000 - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 301 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f32.const inf - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 302 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const nan:0x8000000000000 - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 303 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const inf - call $~lib/number/isFinite - if - i32.const 0 - i32.const 64 - i32.const 304 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f32.const 0 - call $~lib/number/isFinite - i32.eqz - if - i32.const 0 - i32.const 64 - i32.const 305 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 0 - call $~lib/number/isFinite - i32.eqz - if - i32.const 0 - i32.const 64 - i32.const 306 - i32.const 0 - call $~lib/builtins/abort - unreachable - end i32.const 8 i32.load8_s drop @@ -876,8 +632,8 @@ f64.const 0 f64.const 0 f64.const 12 - f64.const 25 - f64.const 25 + f64.const 23 + f64.const 23 call $~lib/builtins/trace i32.const 176 i32.const 176 @@ -1120,7 +876,7 @@ unreachable end ) - (func $start (; 14 ;) (type $FUNCSIG$v) + (func $start (; 10 ;) (type $FUNCSIG$v) call $start:builtins ) ) diff --git a/tests/compiler/builtins.untouched.wat b/tests/compiler/builtins.untouched.wat index ad1b718054..969e412e64 100644 --- a/tests/compiler/builtins.untouched.wat +++ b/tests/compiler/builtins.untouched.wat @@ -1,7 +1,5 @@ (module (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64))) @@ -81,34 +79,10 @@ (export "memory" (memory $0)) (export "test" (func $builtins/test)) (start $start) - (func $~lib/number/isNaN (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/number/isFinite (; 3 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.sub - f32.const 0 - f32.eq - ) - (func $~lib/number/isNaN (; 4 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/number/isFinite (; 5 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $start:builtins~anonymous|0 (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $start:builtins~anonymous|0 (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/atomics/Atomics.isLockFree (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/atomics/Atomics.isLockFree (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.eq @@ -127,13 +101,13 @@ i32.eq end ) - (func $~lib/rt/stub/__retain (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/stub/__retain (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 ) - (func $~lib/rt/stub/__release (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/stub/__release (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/string/String#get:length (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -141,7 +115,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 11 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 7 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -261,7 +235,7 @@ call $~lib/rt/stub/__release local.get $8 ) - (func $~lib/string/String.__eq (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -334,20 +308,22 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $start:builtins~anonymous|1 (; 13 ;) (type $FUNCSIG$v) + (func $start:builtins~anonymous|1 (; 9 ;) (type $FUNCSIG$v) nop ) - (func $start:builtins~anonymous|2 (; 14 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $start:builtins~anonymous|2 (; 10 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) nop ) - (func $start:builtins (; 15 ;) (type $FUNCSIG$v) + (func $start:builtins (; 11 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i64) (local $3 i64) - (local $4 i32) - (local $5 i32) + (local $4 f32) + (local $5 f64) (local $6 i32) + (local $7 i32) + (local $8 i32) i32.const 1 i32.clz drop @@ -617,7 +593,9 @@ f32.trunc drop f32.const 1.25 - call $~lib/number/isNaN + local.tee $4 + local.get $4 + f32.ne i32.const 0 i32.eq i32.eqz @@ -630,7 +608,9 @@ unreachable end f32.const nan:0x400000 - call $~lib/number/isNaN + local.tee $4 + local.get $4 + f32.ne i32.const 1 i32.eq i32.eqz @@ -643,7 +623,11 @@ unreachable end f32.const 1.25 - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.const 1 i32.eq i32.eqz @@ -656,7 +640,11 @@ unreachable end f32.const inf - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.const 0 i32.eq i32.eqz @@ -669,7 +657,11 @@ unreachable end f32.const -inf - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.const 0 i32.eq i32.eqz @@ -682,7 +674,11 @@ unreachable end f32.const nan:0x400000 - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.const 0 i32.eq i32.eqz @@ -729,10 +725,16 @@ f32.trunc global.set $builtins/f f32.const 1.25 - call $~lib/number/isNaN + local.tee $4 + local.get $4 + f32.ne global.set $builtins/b f32.const 1.25 - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq global.set $builtins/b f64.const nan:0x8000000000000 drop @@ -773,7 +775,9 @@ f64.trunc drop f64.const 1.25 - call $~lib/number/isNaN + local.tee $5 + local.get $5 + f64.ne i32.const 0 i32.eq i32.eqz @@ -786,7 +790,9 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/number/isNaN + local.tee $5 + local.get $5 + f64.ne i32.const 1 i32.eq i32.eqz @@ -799,7 +805,11 @@ unreachable end f64.const 1.25 - call $~lib/number/isFinite + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq i32.const 1 i32.eq i32.eqz @@ -812,7 +822,11 @@ unreachable end f64.const inf - call $~lib/number/isFinite + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq i32.const 0 i32.eq i32.eqz @@ -825,7 +839,11 @@ unreachable end f64.const -inf - call $~lib/number/isFinite + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq i32.const 0 i32.eq i32.eqz @@ -838,7 +856,11 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/number/isFinite + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq i32.const 0 i32.eq i32.eqz @@ -885,10 +907,16 @@ f64.trunc global.set $builtins/F f64.const 1.25 - call $~lib/number/isNaN + local.tee $5 + local.get $5 + f64.ne global.set $builtins/b f64.const 1.25 - call $~lib/number/isFinite + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq global.set $builtins/b f64.const 0 f64.const 1 @@ -1151,7 +1179,9 @@ i32.const 4 drop f32.const nan:0x400000 - call $~lib/number/isNaN + local.tee $4 + local.get $4 + f32.ne i32.eqz if i32.const 0 @@ -1162,7 +1192,9 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/number/isNaN + local.tee $5 + local.get $5 + f64.ne i32.eqz if i32.const 0 @@ -1173,7 +1205,11 @@ unreachable end f32.const nan:0x400000 - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.eqz i32.eqz if @@ -1185,7 +1221,11 @@ unreachable end f32.const inf - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.eqz i32.eqz if @@ -1197,7 +1237,11 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/number/isFinite + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq i32.eqz i32.eqz if @@ -1209,7 +1253,11 @@ unreachable end f64.const inf - call $~lib/number/isFinite + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq i32.eqz i32.eqz if @@ -1221,7 +1269,11 @@ unreachable end f32.const 0 - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.eqz if i32.const 0 @@ -1232,7 +1284,11 @@ unreachable end f64.const 0 - call $~lib/number/isFinite + local.tee $5 + local.get $5 + f64.sub + f64.const 0 + f64.eq i32.eqz if i32.const 0 @@ -1513,22 +1569,22 @@ i32.const 0 local.set $1 i32.const 12 - local.set $4 - i32.const 25 - local.set $5 - i32.const 25 local.set $6 + i32.const 23 + local.set $7 + i32.const 23 + local.set $8 i32.const 104 i32.const 5 local.get $0 f64.convert_i32_u local.get $1 f64.convert_i32_u - local.get $4 + local.get $6 f64.convert_i32_u - local.get $5 + local.get $7 f64.convert_i32_u - local.get $6 + local.get $8 f64.convert_i32_u call $~lib/builtins/trace local.get $0 @@ -1544,7 +1600,7 @@ unreachable end local.get $0 - local.get $4 + local.get $6 i32.ne i32.eqz if @@ -1555,7 +1611,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $6 i32.const 12 i32.eq i32.eqz @@ -1567,8 +1623,8 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $7 + local.get $8 i32.eq i32.eqz if @@ -1820,12 +1876,12 @@ unreachable end ) - (func $builtins/test (; 16 ;) (type $FUNCSIG$v) + (func $builtins/test (; 12 ;) (type $FUNCSIG$v) nop ) - (func $start (; 17 ;) (type $FUNCSIG$v) + (func $start (; 13 ;) (type $FUNCSIG$v) call $start:builtins ) - (func $null (; 18 ;) (type $FUNCSIG$v) + (func $null (; 14 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/i64-polyfill.optimized.wat b/tests/compiler/i64-polyfill.optimized.wat index c05e3d9b3f..72d4e59b09 100644 --- a/tests/compiler/i64-polyfill.optimized.wat +++ b/tests/compiler/i64-polyfill.optimized.wat @@ -94,7 +94,8 @@ i64.const 32 i64.shl i64.or - i64.eqz + i64.const 0 + i64.eq global.set $../../lib/i64/assembly/i64/lo i32.const 0 global.set $../../lib/i64/assembly/i64/hi diff --git a/tests/compiler/i64-polyfill.untouched.wat b/tests/compiler/i64-polyfill.untouched.wat index e1d468da83..03eeae0d66 100644 --- a/tests/compiler/i64-polyfill.untouched.wat +++ b/tests/compiler/i64-polyfill.untouched.wat @@ -106,7 +106,9 @@ i64.const 32 i64.shl i64.or - i64.eqz + i64.const 0 + i64.ne + i32.eqz local.set $2 local.get $2 global.set $../../lib/i64/assembly/i64/lo diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 9047619606..57ae1147b4 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -1,5 +1,7 @@ (module + (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$v (func)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s") (global $logical/i (mut i32) (i32.const 0)) @@ -8,7 +10,9 @@ (global $logical/F (mut f64) (f64.const 0)) (export "memory" (memory $0)) (start $start) - (func $start:logical (; 0 ;) (type $FUNCSIG$v) + (func $start:logical (; 1 ;) (type $FUNCSIG$v) + (local $0 f32) + (local $1 f64) i32.const 2 global.set $logical/i i32.const 1 @@ -25,11 +29,75 @@ global.set $logical/F f64.const 1 global.set $logical/F + f32.const 1 + global.set $logical/f + f32.const 1 + global.set $logical/f + f64.const 1 + global.set $logical/F + f64.const 1 + global.set $logical/F + f32.const nan:0x400000 + global.set $logical/f + f32.const nan:0x400000 + local.tee $0 + local.get $0 + f32.eq + if + i32.const 0 + i32.const 24 + i32.const 56 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + global.set $logical/f + f32.const nan:0x400000 + local.tee $0 + local.get $0 + f32.eq + if + i32.const 0 + i32.const 24 + i32.const 59 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + global.set $logical/F + f64.const nan:0x8000000000000 + local.tee $1 + local.get $1 + f64.eq + if + i32.const 0 + i32.const 24 + i32.const 62 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + global.set $logical/F + f64.const nan:0x8000000000000 + local.tee $1 + local.get $1 + f64.eq + if + i32.const 0 + i32.const 24 + i32.const 65 + i32.const 0 + call $~lib/builtins/abort + unreachable + end ) - (func $start (; 1 ;) (type $FUNCSIG$v) + (func $start (; 2 ;) (type $FUNCSIG$v) call $start:logical ) - (func $null (; 2 ;) (type $FUNCSIG$v) + (func $null (; 3 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/logical.ts b/tests/compiler/logical.ts index 14218e9ac5..fddfa32d6f 100644 --- a/tests/compiler/logical.ts +++ b/tests/compiler/logical.ts @@ -37,3 +37,29 @@ assert(F == 2.0); F = 0.0 || 1.0; assert(F == 1.0); + +// NaN is considered falseish + +f = NaN as f32 || 1.0 as f32; +assert(f == 1.0); + +f = 1.0 as f32 || NaN as f32; +assert(f == 1.0); + +F = NaN || 1.0; +assert(F == 1.0); + +F = 1.0 || NaN; +assert(F == 1.0); + +f = 1.0 as f32 && NaN as f32; +assert(isNaN(f)); + +f = NaN as f32 && 1.0 as f32; +assert(isNaN(f)); + +F = 1.0 && NaN; +assert(isNaN(F)); + +F = NaN && 1.0; +assert(isNaN(F)); diff --git a/tests/compiler/logical.untouched.wat b/tests/compiler/logical.untouched.wat index bfbefd3c16..f00be19eb6 100644 --- a/tests/compiler/logical.untouched.wat +++ b/tests/compiler/logical.untouched.wat @@ -13,6 +13,8 @@ (export "memory" (memory $0)) (start $start) (func $start:logical (; 1 ;) (type $FUNCSIG$v) + (local $0 f64) + (local $1 f32) i32.const 0 if (result i32) unreachable @@ -21,8 +23,13 @@ end drop f64.const 0 + local.tee $0 f64.const 0 f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and if (result i32) unreachable else @@ -37,8 +44,13 @@ end drop f64.const 1 + local.tee $0 f64.const 0 f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and if (result i32) i32.const 1 else @@ -58,15 +70,25 @@ end drop f64.const 1 + local.tee $0 f64.const 0 f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and if (result f64) f64.const 2 else f64.const 1 end + local.tee $0 f64.const 0 f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and if (result i32) i32.const 1 else @@ -154,8 +176,13 @@ unreachable end f32.const 1 + local.tee $1 f32.const 0 f32.ne + local.get $1 + local.get $1 + f32.eq + i32.and if (result f32) f32.const 2 else @@ -175,8 +202,13 @@ unreachable end f32.const 0 + local.tee $1 f32.const 0 f32.ne + local.get $1 + local.get $1 + f32.eq + i32.and if (result f32) f32.const 0 else @@ -196,8 +228,13 @@ unreachable end f64.const 1 + local.tee $0 f64.const 0 f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and if (result f64) f64.const 2 else @@ -217,8 +254,13 @@ unreachable end f64.const 0 + local.tee $0 f64.const 0 f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and if (result f64) f64.const 0 else @@ -237,6 +279,218 @@ call $~lib/builtins/abort unreachable end + f32.const nan:0x400000 + local.tee $1 + f32.const 0 + f32.ne + local.get $1 + local.get $1 + f32.eq + i32.and + if (result f32) + f32.const nan:0x400000 + else + f32.const 1 + end + global.set $logical/f + global.get $logical/f + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 44 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + local.tee $1 + f32.const 0 + f32.ne + local.get $1 + local.get $1 + f32.eq + i32.and + if (result f32) + f32.const 1 + else + f32.const nan:0x400000 + end + global.set $logical/f + global.get $logical/f + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 47 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + local.tee $0 + f64.const 0 + f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and + if (result f64) + f64.const nan:0x8000000000000 + else + f64.const 1 + end + global.set $logical/F + global.get $logical/F + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 50 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + local.tee $0 + f64.const 0 + f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and + if (result f64) + f64.const 1 + else + f64.const nan:0x8000000000000 + end + global.set $logical/F + global.get $logical/F + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 53 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f32.const 1 + local.tee $1 + f32.const 0 + f32.ne + local.get $1 + local.get $1 + f32.eq + i32.and + if (result f32) + f32.const nan:0x400000 + else + f32.const 1 + end + global.set $logical/f + global.get $logical/f + local.tee $1 + local.get $1 + f32.ne + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 56 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f32.const nan:0x400000 + local.tee $1 + f32.const 0 + f32.ne + local.get $1 + local.get $1 + f32.eq + i32.and + if (result f32) + f32.const 1 + else + f32.const nan:0x400000 + end + global.set $logical/f + global.get $logical/f + local.tee $1 + local.get $1 + f32.ne + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 59 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + local.tee $0 + f64.const 0 + f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and + if (result f64) + f64.const nan:0x8000000000000 + else + f64.const 1 + end + global.set $logical/F + global.get $logical/F + local.tee $0 + local.get $0 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 62 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const nan:0x8000000000000 + local.tee $0 + f64.const 0 + f64.ne + local.get $0 + local.get $0 + f64.eq + i32.and + if (result f64) + f64.const 1 + else + f64.const nan:0x8000000000000 + end + global.set $logical/F + global.get $logical/F + local.tee $0 + local.get $0 + f64.ne + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 65 + i32.const 0 + call $~lib/builtins/abort + unreachable + end ) (func $start (; 2 ;) (type $FUNCSIG$v) call $start:logical diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 08a41a70b1..c64786b514 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -367,19 +367,7 @@ end i32.const 0 ) - (func $~lib/number/isFinite (; 9 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/number/isNaN (; 10 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/util/number/genDigits (; 11 ;) (type $FUNCSIG$iijijij) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32) + (func $~lib/util/number/genDigits (; 9 ;) (type $FUNCSIG$iijijij) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32) (local $6 i32) (local $7 i32) (local $8 i64) @@ -779,7 +767,7 @@ i32.store16 local.get $2 ) - (func $~lib/memory/memory.copy (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) block $~lib/util/memory/memmove|inlined.0 @@ -954,7 +942,7 @@ end end ) - (func $~lib/util/number/prettify (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -1201,7 +1189,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/dtoa_core (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i64) (local $2 i64) (local $3 i64) @@ -1369,7 +1357,7 @@ global.get $~lib/util/number/_K call $~lib/util/number/prettify ) - (func $~lib/string/String#substring (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 0 @@ -1442,7 +1430,7 @@ call $~lib/memory/memory.copy local.get $1 ) - (func $~lib/rt/stub/__free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/stub/__free (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.const 15 @@ -1486,22 +1474,9 @@ global.set $~lib/rt/stub/offset end ) - (func $~lib/util/number/dtoa (; 17 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/util/number/dtoa (; 15 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) - f64.const 2 - call $~lib/number/isFinite - i32.eqz - if - f64.const 2 - call $~lib/number/isNaN - if - i32.const 136 - return - end - i32.const 200 - return - end i32.const 56 call $~lib/rt/stub/__alloc local.tee $0 @@ -1519,13 +1494,13 @@ local.get $0 call $~lib/rt/stub/__free ) - (func $~lib/number/Bool#toString (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/number/Bool#toString (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1472 i32.const 1496 local.get $0 select ) - (func $~lib/number/F32.isSafeInteger (; 19 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32.isSafeInteger (; 17 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 f32.trunc local.get $0 @@ -1537,7 +1512,7 @@ f32.le select ) - (func $~lib/number/F32.isInteger (; 20 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32.isInteger (; 18 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 f32.trunc local.get $0 @@ -1550,7 +1525,7 @@ f32.eq select ) - (func $~lib/number/F64.isSafeInteger (; 21 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/F64.isSafeInteger (; 19 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 f64.trunc local.get $0 @@ -1562,19 +1537,20 @@ f64.le select ) - (func $~lib/number/F64.isInteger (; 22 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/F64.isInteger (; 20 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 - call $~lib/number/isFinite - if (result i32) - local.get $0 - f64.trunc - local.get $0 - f64.eq - else - i32.const 0 - end + f64.trunc + local.get $0 + f64.eq + i32.const 0 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + select ) - (func $start:number (; 23 ;) (type $FUNCSIG$v) + (func $start:number (; 21 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 1520 global.set $~lib/rt/stub/startOffset @@ -1960,17 +1936,6 @@ call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 - call $~lib/number/isNaN - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 46 - i32.const 0 - call $~lib/builtins/abort - unreachable - end f64.const -9007199254740992 call $~lib/number/F64.isSafeInteger if @@ -2192,10 +2157,10 @@ unreachable end ) - (func $start (; 24 ;) (type $FUNCSIG$v) + (func $start (; 22 ;) (type $FUNCSIG$v) call $start:number ) - (func $null (; 25 ;) (type $FUNCSIG$v) + (func $null (; 23 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index 53ccc27823..f6eb58e06c 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -648,19 +648,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/number/isFinite (; 13 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/number/isNaN (; 14 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/array/Array#__unchecked_get (; 15 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 13 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -669,7 +657,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -678,7 +666,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 17 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 15 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -1180,7 +1168,7 @@ end unreachable ) - (func $~lib/util/memory/memcpy (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2208,7 +2196,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 17 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2433,7 +2421,7 @@ end end ) - (func $~lib/util/number/prettify (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 18 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2752,7 +2740,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 21 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 19 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3174,7 +3162,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 22 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3281,7 +3269,7 @@ local.get $10 call $~lib/rt/stub/__retain ) - (func $~lib/rt/stub/__free (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/stub/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.const 0 @@ -3331,7 +3319,7 @@ global.set $~lib/rt/stub/offset end ) - (func $~lib/util/number/dtoa (; 24 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 22 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3344,11 +3332,15 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 584 call $~lib/rt/stub/__retain @@ -3390,11 +3382,11 @@ call $~lib/rt/stub/__free local.get $3 ) - (func $~lib/number/F64#toString (; 25 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32) + (func $~lib/number/F64#toString (; 23 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32) local.get $0 call $~lib/util/number/dtoa ) - (func $~lib/number/Bool#toString (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/number/Bool#toString (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -3409,12 +3401,7 @@ end call $~lib/rt/stub/__retain ) - (func $~lib/number/isNaN (; 27 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/number/F32.isSafeInteger (; 28 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32.isSafeInteger (; 25 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 f32.abs global.get $~lib/builtins/f32.MAX_SAFE_INTEGER @@ -3428,16 +3415,12 @@ i32.const 0 end ) - (func $~lib/number/isFinite (; 29 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32.isInteger (; 26 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.sub f32.const 0 f32.eq - ) - (func $~lib/number/F32.isInteger (; 30 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - call $~lib/number/isFinite if (result i32) local.get $0 f32.trunc @@ -3447,7 +3430,7 @@ i32.const 0 end ) - (func $~lib/number/F64.isSafeInteger (; 31 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/F64.isSafeInteger (; 27 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 f64.abs global.get $~lib/builtins/f64.MAX_SAFE_INTEGER @@ -3461,9 +3444,12 @@ i32.const 0 end ) - (func $~lib/number/F64.isInteger (; 32 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/F64.isInteger (; 28 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + local.get $0 local.get $0 - call $~lib/number/isFinite + f64.sub + f64.const 0 + f64.eq if (result i32) local.get $0 f64.trunc @@ -3473,7 +3459,7 @@ i32.const 0 end ) - (func $start:number (; 33 ;) (type $FUNCSIG$v) + (func $start:number (; 29 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3485,6 +3471,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 f32) + (local $12 f64) global.get $~lib/heap/__heap_base i32.const 15 i32.add @@ -3669,7 +3657,9 @@ unreachable end f32.const nan:0x400000 - call $~lib/number/isNaN + local.tee $11 + local.get $11 + f32.ne i32.eqz if i32.const 0 @@ -3940,7 +3930,9 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/number/isNaN + local.tee $12 + local.get $12 + f64.ne i32.eqz if i32.const 0 @@ -4233,9 +4225,9 @@ local.get $10 call $~lib/rt/stub/__release ) - (func $start (; 34 ;) (type $FUNCSIG$v) + (func $start (; 30 ;) (type $FUNCSIG$v) call $start:number ) - (func $null (; 35 ;) (type $FUNCSIG$v) + (func $null (; 31 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index f086ec01ed..d259e1a501 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -485,7 +485,8 @@ (local $2 i32) (local $3 i32) local.get $0 - i64.eqz + i64.const 0 + i64.eq if i32.const 152 return diff --git a/tests/compiler/resolve-access.untouched.wat b/tests/compiler/resolve-access.untouched.wat index fcf655ffc6..24f25c3c86 100644 --- a/tests/compiler/resolve-access.untouched.wat +++ b/tests/compiler/resolve-access.untouched.wat @@ -1877,7 +1877,9 @@ (local $6 i32) (local $7 i64) local.get $0 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if i32.const 152 call $~lib/rt/stub/__retain diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat index 2c44f55f27..f5ae54ecb1 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -1844,19 +1844,7 @@ local.get $16 f64.mul ) - (func $~lib/number/isFinite (; 16 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/number/isNaN (; 17 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/array/Array#__unchecked_get (; 18 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 16 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -1865,7 +1853,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -1874,7 +1862,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 20 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 18 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -2376,7 +2364,7 @@ end unreachable ) - (func $~lib/util/memory/memcpy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3404,7 +3392,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 22 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3629,7 +3617,7 @@ end end ) - (func $~lib/util/number/prettify (; 23 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3948,7 +3936,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 24 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 22 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4370,7 +4358,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 25 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 23 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4477,7 +4465,7 @@ local.get $10 call $~lib/rt/stub/__retain ) - (func $~lib/rt/stub/__free (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/stub/__free (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.const 0 @@ -4527,7 +4515,7 @@ global.set $~lib/rt/stub/offset end ) - (func $~lib/util/number/dtoa (; 27 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4540,11 +4528,15 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 704 call $~lib/rt/stub/__retain @@ -4586,11 +4578,11 @@ call $~lib/rt/stub/__free local.get $3 ) - (func $~lib/number/F64#toString (; 28 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32) + (func $~lib/number/F64#toString (; 26 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32) local.get $0 call $~lib/util/number/dtoa ) - (func $resolve-binary/Foo#constructor (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $resolve-binary/Foo#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -4602,7 +4594,7 @@ end local.get $0 ) - (func $resolve-binary/Foo#lt (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#lt (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4614,11 +4606,11 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/string/String#toString (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#toString (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/rt/stub/__retain ) - (func $resolve-binary/Foo#gt (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#gt (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4630,7 +4622,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#le (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#le (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4642,7 +4634,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#ge (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#ge (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4654,7 +4646,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#eq (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#eq (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4666,7 +4658,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#ne (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#ne (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4678,7 +4670,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#add (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#add (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4690,7 +4682,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo.sub (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo.sub (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/stub/__retain @@ -4707,7 +4699,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#mul (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#mul (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4719,7 +4711,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#div (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#div (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4731,7 +4723,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#rem (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#rem (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4743,7 +4735,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Foo#pow (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Foo#pow (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -4755,7 +4747,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $resolve-binary/Bar#constructor (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $resolve-binary/Bar#constructor (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -4767,17 +4759,17 @@ end local.get $0 ) - (func $resolve-binary/Bar#add (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $resolve-binary/Bar#add (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/stub/__retain drop local.get $1 ) - (func $resolve-binary/Bar#self (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $resolve-binary/Bar#self (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/rt/stub/__retain ) - (func $start:resolve-binary (; 46 ;) (type $FUNCSIG$v) + (func $start:resolve-binary (; 44 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5811,9 +5803,9 @@ local.get $62 call $~lib/rt/stub/__release ) - (func $start (; 47 ;) (type $FUNCSIG$v) + (func $start (; 45 ;) (type $FUNCSIG$v) call $start:resolve-binary ) - (func $null (; 48 ;) (type $FUNCSIG$v) + (func $null (; 46 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 1b82fefefc..0f1c0d6059 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -564,19 +564,7 @@ i32.add f32.load ) - (func $~lib/number/isFinite (; 10 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/number/isNaN (; 11 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/array/Array#__unchecked_get (; 12 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 10 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -585,7 +573,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -594,7 +582,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/decimalCount32 (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -660,7 +648,7 @@ end unreachable ) - (func $~lib/util/number/genDigits (; 15 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 13 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -1162,7 +1150,7 @@ end unreachable ) - (func $~lib/util/memory/memcpy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 14 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2190,7 +2178,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 17 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2415,7 +2403,7 @@ end end ) - (func $~lib/util/number/utoa32_lut (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2557,7 +2545,7 @@ i32.store16 end ) - (func $~lib/util/number/prettify (; 19 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2876,7 +2864,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 20 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 18 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3298,7 +3286,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#get:length (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -3306,7 +3294,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/string/String#substring (; 22 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3413,7 +3401,7 @@ local.get $10 call $~lib/rt/stub/__retain ) - (func $~lib/rt/stub/__free (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/stub/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.const 0 @@ -3463,7 +3451,7 @@ global.set $~lib/rt/stub/offset end ) - (func $~lib/util/number/dtoa (; 24 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 22 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3476,11 +3464,15 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 264 call $~lib/rt/stub/__retain @@ -3522,12 +3514,12 @@ call $~lib/rt/stub/__free local.get $3 ) - (func $~lib/number/F32#toString (; 25 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32#toString (; 23 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 f64.promote_f32 call $~lib/util/number/dtoa ) - (func $~lib/util/string/compareImpl (; 26 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 24 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -3647,7 +3639,7 @@ call $~lib/rt/stub/__release local.get $8 ) - (func $~lib/string/String.__eq (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3720,7 +3712,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $start:resolve-elementaccess (; 28 ;) (type $FUNCSIG$v) + (func $start:resolve-elementaccess (; 26 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3834,9 +3826,9 @@ local.get $2 call $~lib/rt/stub/__release ) - (func $start (; 29 ;) (type $FUNCSIG$v) + (func $start (; 27 ;) (type $FUNCSIG$v) call $start:resolve-elementaccess ) - (func $null (; 30 ;) (type $FUNCSIG$v) + (func $null (; 28 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index 56f40cccc8..76ea65289d 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -3754,19 +3754,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/number/isFinite (; 35 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/number/isNaN (; 36 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/array/Array#__unchecked_get (; 37 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 35 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -3775,7 +3763,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -3784,7 +3772,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 39 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 37 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -4286,7 +4274,7 @@ end unreachable ) - (func $~lib/util/number/prettify (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4605,7 +4593,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 41 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 39 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5027,7 +5015,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5134,7 +5122,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/dtoa (; 43 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 41 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5147,11 +5135,15 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 848 call $~lib/rt/pure/__retain @@ -5193,31 +5185,31 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $~lib/number/F64#toString (; 44 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32) + (func $~lib/number/F64#toString (; 42 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32) local.get $0 call $~lib/util/number/dtoa ) - (func $start:resolve-ternary~anonymous|0 (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $start:resolve-ternary~anonymous|0 (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.add ) - (func $start:resolve-ternary~anonymous|1 (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $start:resolve-ternary~anonymous|1 (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2 i32.add ) - (func $resolve-ternary/g1 (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $resolve-ternary/g1 (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3 i32.add ) - (func $resolve-ternary/g2 (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $resolve-ternary/g2 (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4 i32.add ) - (func $start:resolve-ternary (; 49 ;) (type $FUNCSIG$v) + (func $start:resolve-ternary (; 47 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) global.get $resolve-ternary/b @@ -5327,19 +5319,19 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $start (; 50 ;) (type $FUNCSIG$v) + (func $start (; 48 ;) (type $FUNCSIG$v) call $start:resolve-ternary ) - (func $~lib/array/Array#__visit_impl (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 49 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 54 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5469,7 +5461,7 @@ end end ) - (func $~lib/rt/__visit_members (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default @@ -5515,6 +5507,6 @@ end return ) - (func $null (; 56 ;) (type $FUNCSIG$v) + (func $null (; 54 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 14d89abbd9..2eb02fcd14 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -8,8 +8,6 @@ (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$fiii (func (param i32 i32 i32) (result f32))) (type $FUNCSIG$fii (func (param i32 i32) (result f32))) (type $FUNCSIG$d (func (result f64))) @@ -18,6 +16,7 @@ (type $FUNCSIG$iff (func (param f32 f32) (result i32))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) (type $FUNCSIG$dii (func (param i32 i32) (result f64))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $FUNCSIG$iiid (func (param i32 i32 f64) (result i32))) @@ -3438,12 +3437,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/number/isNaN (; 60 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/array/Array#includes (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#includes (; 60 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -3482,10 +3476,8 @@ i32.const 1 else local.get $3 - call $~lib/number/isNaN - f32.const nan:0x400000 - call $~lib/number/isNaN - i32.and + local.get $3 + f32.ne end if i32.const 1 @@ -3502,12 +3494,7 @@ end i32.const 0 ) - (func $~lib/number/isNaN (; 62 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/array/Array#includes (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#includes (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -3546,10 +3533,8 @@ i32.const 1 else local.get $3 - call $~lib/number/isNaN - f64.const nan:0x8000000000000 - call $~lib/number/isNaN - i32.and + local.get $3 + f64.ne end if i32.const 1 @@ -3566,7 +3551,7 @@ end i32.const 0 ) - (func $~lib/array/Array#splice (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3656,7 +3641,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#splice (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#splice (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3747,7 +3732,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#__unchecked_get (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -3757,7 +3742,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -3787,7 +3772,7 @@ end local.get $0 ) - (func $~lib/array/Array#splice (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#splice (; 66 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3865,7 +3850,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#__get (; 69 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -3882,7 +3867,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/array/Array#__set (; 70 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 68 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -3908,7 +3893,7 @@ i32.store offset=12 end ) - (func $start:std/array~anonymous|0 (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3917,7 +3902,7 @@ local.get $0 i32.eqz ) - (func $~lib/array/Array#findIndex (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 70 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3965,7 +3950,7 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3975,7 +3960,7 @@ i32.const 1 i32.eq ) - (func $start:std/array~anonymous|2 (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3985,7 +3970,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|3 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3998,7 +3983,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|5 (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4011,7 +3996,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4021,7 +4006,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#every (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4069,7 +4054,7 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4079,7 +4064,7 @@ i32.const 0 i32.le_s ) - (func $start:std/array~anonymous|8 (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4092,7 +4077,7 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|9 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4102,7 +4087,7 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|10 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4115,7 +4100,7 @@ i32.const 3 i32.lt_s ) - (func $start:std/array~anonymous|11 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4125,7 +4110,7 @@ i32.const 3 i32.ge_s ) - (func $~lib/array/Array#some (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4173,7 +4158,7 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4183,7 +4168,7 @@ i32.const -1 i32.le_s ) - (func $start:std/array~anonymous|13 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 84 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4196,7 +4181,7 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|14 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4206,7 +4191,7 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|15 (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4219,7 +4204,7 @@ i32.const 3 i32.gt_s ) - (func $start:std/array~anonymous|16 (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 87 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4230,7 +4215,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#forEach (; 90 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 88 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4272,7 +4257,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 91 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4286,7 +4271,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|19 (; 92 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 90 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4300,7 +4285,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|20 (; 93 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 91 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -4402,7 +4387,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|21 (; 94 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 92 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4411,7 +4396,7 @@ local.get $0 f32.convert_i32_s ) - (func $~lib/array/Array#map (; 95 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#map (; 93 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4469,7 +4454,7 @@ end local.get $4 ) - (func $~lib/array/Array#__get (; 96 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 94 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=12 @@ -4490,7 +4475,7 @@ i32.add f32.load ) - (func $start:std/array~anonymous|22 (; 97 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 95 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4505,7 +4490,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array#map (; 98 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 96 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4565,7 +4550,7 @@ end local.get $5 ) - (func $start:std/array~anonymous|23 (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 97 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4577,7 +4562,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $start:std/array~anonymous|24 (; 100 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 98 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4592,7 +4577,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $start:std/array~anonymous|25 (; 101 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4602,7 +4587,7 @@ i32.const 2 i32.ge_s ) - (func $~lib/array/Array#filter (; 102 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 100 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4659,7 +4644,7 @@ end local.get $4 ) - (func $start:std/array~anonymous|26 (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 101 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4676,7 +4661,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|27 (; 104 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 102 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4690,7 +4675,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|28 (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4707,7 +4692,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|29 (; 106 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 104 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4717,7 +4702,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduce (; 107 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4761,7 +4746,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|31 (; 108 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 106 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4774,7 +4759,7 @@ local.get $0 select ) - (func $start:std/array~anonymous|32 (; 109 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 107 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4787,7 +4772,7 @@ local.get $0 select ) - (func $start:std/array~anonymous|33 (; 110 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 108 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4800,7 +4785,7 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|35 (; 111 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 109 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4813,7 +4798,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduceRight (; 112 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 110 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -4850,7 +4835,7 @@ end local.get $2 ) - (func $~lib/math/murmurHash3 (; 113 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 111 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 i64.const 33 i64.shr_u @@ -4871,7 +4856,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 112 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -4903,7 +4888,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 115 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 113 ;) (type $FUNCSIG$vj) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -4947,7 +4932,7 @@ unreachable end ) - (func $~lib/util/sort/insertionSort (; 116 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 114 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -5027,7 +5012,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 117 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 115 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -5290,7 +5275,7 @@ local.get $5 f32.store ) - (func $~lib/array/Array#sort (; 118 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 116 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -5355,7 +5340,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 119 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 117 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5384,9 +5369,10 @@ i32.lt_s i32.sub ) - (func $std/array/isArraysEqual (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 118 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 f32) + (local $4 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -5397,7 +5383,7 @@ block $folding-inner0 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 local.get $1 i32.load offset=12 i32.ne @@ -5408,18 +5394,22 @@ br_if $folding-inner1 loop $loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.get $2 call $~lib/array/Array#__get - call $~lib/number/isNaN + local.tee $3 + local.get $3 + f32.ne if (result i32) local.get $1 local.get $2 call $~lib/array/Array#__get - call $~lib/number/isNaN + local.tee $3 + local.get $3 + f32.ne else i32.const 0 end @@ -5456,7 +5446,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 121 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 119 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -5536,7 +5526,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 122 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 120 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -5799,7 +5789,7 @@ local.get $5 f64.store ) - (func $~lib/array/Array#sort (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 121 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -5864,7 +5854,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 124 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 122 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -5893,7 +5883,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#__get (; 125 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 123 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=12 @@ -5914,9 +5904,10 @@ i32.add f64.load ) - (func $std/array/isArraysEqual (; 126 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 124 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 f64) + (local $4 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -5927,7 +5918,7 @@ block $folding-inner0 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 local.get $1 i32.load offset=12 i32.ne @@ -5938,18 +5929,22 @@ br_if $folding-inner1 loop $loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.get $2 call $~lib/array/Array#__get - call $~lib/number/isNaN + local.tee $3 + local.get $3 + f64.ne if (result i32) local.get $1 local.get $2 call $~lib/array/Array#__get - call $~lib/number/isNaN + local.tee $3 + local.get $3 + f64.ne else i32.const 0 end @@ -5986,7 +5981,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 127 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 125 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6066,7 +6061,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 128 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 126 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6329,7 +6324,7 @@ local.get $1 i32.store ) - (func $~lib/array/Array#sort (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 127 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6393,12 +6388,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 130 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 131 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -6407,7 +6402,7 @@ i32.lt_u i32.sub ) - (func $std/array/createReverseOrderedArray (; 132 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -6436,7 +6431,7 @@ end local.get $2 ) - (func $~lib/math/NativeMath.random (; 133 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 131 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -6480,7 +6475,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 134 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 132 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -6509,7 +6504,7 @@ end local.get $2 ) - (func $std/array/isSorted (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -6558,7 +6553,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted (; 136 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 134 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6583,7 +6578,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/assertSortedDefault (; 137 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 135 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -6593,12 +6588,12 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|44 (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 136 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 139 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 137 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6624,7 +6619,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 140 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 138 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6651,7 +6646,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (; 141 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 139 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6696,7 +6691,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 142 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 140 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6716,7 +6711,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 143 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 141 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6805,7 +6800,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 142 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6865,7 +6860,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $std/array/isSorted<~lib/array/Array> (; 145 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 143 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6926,7 +6921,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted<~lib/array/Array> (; 146 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 144 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6951,7 +6946,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedElementsArray (; 147 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 145 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6997,7 +6992,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7015,7 +7010,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/array/isSorted<~lib/string/String | null> (; 149 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 147 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7076,7 +7071,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 150 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 148 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7101,7 +7096,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 151 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 149 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -7109,7 +7104,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 152 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 150 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7207,7 +7202,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7286,7 +7281,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__eq (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7340,7 +7335,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__ne (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7357,7 +7352,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7438,7 +7433,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/string/String#charAt (; 157 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#charAt (; 155 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 3520 @@ -7463,7 +7458,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#concat (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7524,7 +7519,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 157 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7543,7 +7538,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/array/createRandomString (; 160 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 158 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7594,7 +7589,7 @@ end local.get $1 ) - (func $std/array/createRandomStringArray (; 161 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createRandomStringArray (; 159 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7636,7 +7631,7 @@ end local.get $0 ) - (func $~lib/string/String#substring (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 0 @@ -7713,7 +7708,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/string/joinBooleanArray (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinBooleanArray (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7865,7 +7860,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/number/decimalCount32 (; 164 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 2 local.get $0 @@ -7913,7 +7908,7 @@ i32.lt_u select ) - (func $~lib/util/number/utoa_simple (; 165 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 163 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -7940,7 +7935,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/itoa32 (; 166 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 164 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7983,7 +7978,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 167 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 165 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -8025,7 +8020,7 @@ end local.get $2 ) - (func $~lib/util/string/joinIntegerArray (; 168 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 166 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8148,7 +8143,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -8161,7 +8156,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/number/utoa32 (; 170 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 168 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -8185,7 +8180,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 171 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 169 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -8209,7 +8204,7 @@ call $~lib/util/number/utoa_simple local.get $0 ) - (func $~lib/util/string/joinIntegerArray (; 172 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 170 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8332,7 +8327,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -8345,14 +8340,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/number/isFinite (; 174 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/util/number/genDigits (; 175 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 172 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i64) @@ -8751,7 +8739,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 176 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 173 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -8998,7 +8986,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 177 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 174 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -9286,7 +9274,7 @@ local.get $10 i32.add ) - (func $~lib/util/number/dtoa (; 178 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 175 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -9298,11 +9286,14 @@ return end local.get $0 - call $~lib/number/isFinite - i32.eqz + local.get $0 + f64.sub + f64.const 0 + f64.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 5104 call $~lib/rt/pure/__retain @@ -9337,7 +9328,7 @@ local.get $1 call $~lib/rt/tlsf/__free ) - (func $~lib/util/number/dtoa_stream (; 179 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 176 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -9362,11 +9353,14 @@ return end local.get $2 - call $~lib/number/isFinite - i32.eqz + local.get $2 + f64.sub + f64.const 0 + f64.ne if local.get $2 - call $~lib/number/isNaN + local.get $2 + f64.ne if local.get $0 i32.const 78 @@ -9405,7 +9399,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/util/string/joinFloatArray (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinFloatArray (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9528,7 +9522,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/string/joinReferenceArray<~lib/string/String | null> (; 181 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/string/String | null> (; 178 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9707,7 +9701,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String | null>#join (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join (; 179 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -9720,7 +9714,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/string/joinReferenceArray (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9899,7 +9893,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#join (; 184 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join (; 181 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4672 call $~lib/rt/pure/__retain drop @@ -9911,12 +9905,12 @@ i32.const 4672 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#toString (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 182 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa_stream (; 186 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 183 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -9971,7 +9965,7 @@ end local.get $2 ) - (func $~lib/util/string/joinIntegerArray (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10090,7 +10084,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/number/itoa_stream (; 188 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 185 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -10120,7 +10114,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 189 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10243,7 +10237,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/number/decimalCount64 (; 190 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 187 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) i32.const 10 i32.const 11 i32.const 12 @@ -10296,7 +10290,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 191 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 188 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -10326,12 +10320,13 @@ br_if $continue|0 end ) - (func $~lib/util/number/utoa64 (; 192 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 189 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) local.get $0 - i64.eqz + i64.const 0 + i64.eq if i32.const 4768 call $~lib/rt/pure/__retain @@ -10370,7 +10365,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 193 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 190 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -10379,7 +10374,8 @@ i32.add local.set $0 local.get $2 - i64.eqz + i64.const 0 + i64.eq if local.get $0 i32.const 48 @@ -10410,7 +10406,7 @@ end local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 194 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10533,13 +10529,14 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/number/itoa64 (; 195 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 192 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) local.get $0 - i64.eqz + i64.const 0 + i64.eq if i32.const 4768 call $~lib/rt/pure/__retain @@ -10598,7 +10595,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 196 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 193 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -10608,7 +10605,8 @@ i32.add local.set $0 local.get $2 - i64.eqz + i64.const 0 + i64.eq if local.get $0 i32.const 48 @@ -10659,7 +10657,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 194 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10782,12 +10780,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 198 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 195 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array<~lib/string/String | null>#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10964,7 +10962,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa_stream (; 200 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 197 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -10994,7 +10992,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 201 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11113,7 +11111,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#toString (; 202 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 199 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4672 call $~lib/rt/pure/__retain drop @@ -11125,7 +11123,7 @@ i32.const 4672 call $~lib/rt/pure/__release ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11302,12 +11300,12 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#toString (; 204 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 201 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11484,7 +11482,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 206 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 203 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4672 call $~lib/rt/pure/__retain drop @@ -11496,7 +11494,7 @@ i32.const 4672 call $~lib/rt/pure/__release ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11673,7 +11671,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $start:std/array (; 208 ;) (type $FUNCSIG$v) + (func $start:std/array (; 205 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -17594,7 +17592,7 @@ local.get $10 call $~lib/rt/pure/__release ) - (func $start (; 209 ;) (type $FUNCSIG$v) + (func $start (; 206 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -17604,7 +17602,7 @@ end call $start:std/array ) - (func $~lib/rt/pure/__visit (; 210 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 207 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 7700 i32.lt_u @@ -17714,7 +17712,7 @@ unreachable end ) - (func $~lib/array/Array#__visit_impl (; 211 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 208 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -17747,7 +17745,7 @@ end end ) - (func $~lib/rt/__visit_members (; 212 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 209 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$27 @@ -17824,7 +17822,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 213 ;) (type $FUNCSIG$v) + (func $null (; 210 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index cd4d5323fc..1db115070e 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -10,8 +10,6 @@ (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$iifi (func (param i32 f32 i32) (result i32))) (type $FUNCSIG$iidi (func (param i32 f64 i32) (result i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$fiii (func (param i32 i32 i32) (result f32))) (type $FUNCSIG$fii (func (param i32 i32) (result f32))) (type $FUNCSIG$d (func (result f64))) @@ -21,6 +19,7 @@ (type $FUNCSIG$idd (func (param f64 f64) (result i32))) (type $FUNCSIG$dii (func (param i32 i32) (result f64))) (type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) (type $FUNCSIG$jii (func (param i32 i32) (result i64))) (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) @@ -5464,12 +5463,7 @@ i32.ge_s return ) - (func $~lib/number/isNaN (; 76 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/array/Array#includes (; 77 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 76 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5531,9 +5525,11 @@ i32.const 1 else local.get $6 - call $~lib/number/isNaN + local.get $6 + f32.ne local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne i32.and end if @@ -5551,12 +5547,7 @@ i32.const 0 return ) - (func $~lib/number/isNaN (; 78 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/array/Array#includes (; 79 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 77 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5618,9 +5609,11 @@ i32.const 1 else local.get $6 - call $~lib/number/isNaN + local.get $6 + f64.ne + local.get $1 local.get $1 - call $~lib/number/isNaN + f64.ne i32.and end if @@ -5638,7 +5631,7 @@ i32.const 0 return ) - (func $~lib/array/Array#splice (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5746,7 +5739,7 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#splice (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5854,7 +5847,7 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#__unchecked_get (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5864,7 +5857,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 83 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -5896,7 +5889,7 @@ end local.get $2 ) - (func $~lib/array/Array#splice (; 84 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6004,11 +5997,11 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#get:length (; 85 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 83 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 86 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -6018,7 +6011,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 87 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 85 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -6038,7 +6031,7 @@ local.set $2 local.get $2 ) - (func $~lib/array/Array#__unchecked_set (; 88 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__unchecked_set (; 86 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -6048,7 +6041,7 @@ local.get $2 i32.store ) - (func $~lib/array/Array#__set (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 87 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -6071,7 +6064,7 @@ i32.store offset=12 end ) - (func $start:std/array~anonymous|0 (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6084,7 +6077,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#findIndex (; 91 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 89 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6136,7 +6129,7 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 92 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6149,7 +6142,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|2 (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 91 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6162,7 +6155,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|3 (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 92 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6179,7 +6172,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|4 (; 95 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|4 (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6192,7 +6185,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|5 (; 96 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6208,7 +6201,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|6 (; 97 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 95 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6221,7 +6214,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#every (; 98 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 96 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6259,8 +6252,6 @@ local.get $0 local.get $1 call_indirect (type $FUNCSIG$iiii) - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -6276,7 +6267,7 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 97 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6289,7 +6280,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|8 (; 100 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 98 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6306,7 +6297,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|9 (; 101 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6319,7 +6310,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|10 (; 102 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 100 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6335,7 +6326,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|11 (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 101 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6348,7 +6339,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#some (; 104 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 102 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6400,7 +6391,7 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6413,7 +6404,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|13 (; 106 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 104 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6430,7 +6421,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|14 (; 107 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6443,7 +6434,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|15 (; 108 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 106 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6459,7 +6450,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|16 (; 109 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 107 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6470,7 +6461,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#forEach (; 110 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 108 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6517,7 +6508,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 111 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 109 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6532,7 +6523,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|18 (; 112 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|18 (; 110 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6543,7 +6534,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|19 (; 113 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 111 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6557,7 +6548,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|20 (; 114 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 112 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6673,7 +6664,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|21 (; 115 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 113 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) (local $3 f32) local.get $2 call $~lib/rt/pure/__retain @@ -6685,7 +6676,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#map (; 116 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 114 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6754,11 +6745,11 @@ end local.get $3 ) - (func $~lib/array/Array#get:length (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 115 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 118 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__unchecked_get (; 116 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $0 i32.load offset=4 local.get $1 @@ -6767,7 +6758,7 @@ i32.add f32.load ) - (func $~lib/array/Array#__get (; 119 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 117 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) (local $2 f32) local.get $1 local.get $0 @@ -6787,7 +6778,7 @@ local.set $2 local.get $2 ) - (func $start:std/array~anonymous|22 (; 120 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 118 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6806,7 +6797,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#map (; 121 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 119 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6874,7 +6865,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|23 (; 122 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 120 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6889,7 +6880,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|24 (; 123 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 121 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6907,7 +6898,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|25 (; 124 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 122 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6920,7 +6911,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#filter (; 125 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6984,7 +6975,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|26 (; 126 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 124 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -7005,7 +6996,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|27 (; 127 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 125 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -7022,7 +7013,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|28 (; 128 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 126 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -7042,7 +7033,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|29 (; 129 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 127 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7055,7 +7046,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduce (; 130 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 128 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7108,7 +7099,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|30 (; 131 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|30 (; 129 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7121,7 +7112,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|31 (; 132 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 130 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7139,7 +7130,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduce (; 133 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 131 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7192,7 +7183,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|32 (; 134 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 132 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7210,7 +7201,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|33 (; 135 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 133 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7227,7 +7218,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|34 (; 136 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|34 (; 134 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7240,7 +7231,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|35 (; 137 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 135 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7256,7 +7247,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|36 (; 138 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|36 (; 136 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7269,7 +7260,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduceRight (; 139 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 137 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -7311,7 +7302,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|37 (; 140 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|37 (; 138 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7324,7 +7315,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|38 (; 141 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|38 (; 139 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7342,7 +7333,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduceRight (; 142 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 140 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -7384,7 +7375,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|39 (; 143 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|39 (; 141 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7402,7 +7393,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|40 (; 144 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|40 (; 142 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7419,7 +7410,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|41 (; 145 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|41 (; 143 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7432,7 +7423,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|42 (; 146 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|42 (; 144 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -7448,7 +7439,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/math/murmurHash3 (; 147 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 145 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -7477,7 +7468,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 148 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 146 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -7512,7 +7503,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 149 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 147 ;) (type $FUNCSIG$vj) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -7564,7 +7555,7 @@ unreachable end ) - (func $~lib/util/sort/insertionSort (; 150 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 148 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f32) (local $5 i32) @@ -7652,7 +7643,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 151 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 149 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7944,7 +7935,7 @@ local.get $10 f32.store ) - (func $~lib/array/Array#sort (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -8019,7 +8010,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 153 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 151 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -8052,7 +8043,7 @@ i32.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8071,9 +8062,10 @@ local.get $1 call $~lib/array/Array#sort ) - (func $std/array/isArraysEqual (; 155 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 153 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) + (local $4 f32) + (local $5 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -8127,12 +8119,16 @@ local.get $0 local.get $3 call $~lib/array/Array#__get - call $~lib/number/isNaN + local.tee $4 + local.get $4 + f32.ne if (result i32) local.get $1 local.get $3 call $~lib/array/Array#__get - call $~lib/number/isNaN + local.tee $4 + local.get $4 + f32.ne else i32.const 0 end @@ -8148,12 +8144,12 @@ f32.ne if i32.const 0 - local.set $4 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $5 return end end @@ -8173,7 +8169,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 156 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 154 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -8261,7 +8257,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 157 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 155 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8553,7 +8549,7 @@ local.get $10 f64.store ) - (func $~lib/array/Array#sort (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -8628,7 +8624,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 159 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 157 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -8661,7 +8657,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8680,11 +8676,11 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array#get:length (; 161 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 159 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 162 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__unchecked_get (; 160 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $0 i32.load offset=4 local.get $1 @@ -8693,7 +8689,7 @@ i32.add f64.load ) - (func $~lib/array/Array#__get (; 163 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 161 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) (local $2 f64) local.get $1 local.get $0 @@ -8713,9 +8709,10 @@ local.set $2 local.get $2 ) - (func $std/array/isArraysEqual (; 164 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 162 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) + (local $4 f64) + (local $5 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -8769,12 +8766,16 @@ local.get $0 local.get $3 call $~lib/array/Array#__get - call $~lib/number/isNaN + local.tee $4 + local.get $4 + f64.ne if (result i32) local.get $1 local.get $3 call $~lib/array/Array#__get - call $~lib/number/isNaN + local.tee $4 + local.get $4 + f64.ne else i32.const 0 end @@ -8790,12 +8791,12 @@ f64.ne if i32.const 0 - local.set $4 + local.set $5 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $5 return end end @@ -8815,7 +8816,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 165 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 163 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8903,7 +8904,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 166 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 164 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9195,7 +9196,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9268,12 +9269,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -9292,7 +9293,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/util/sort/insertionSort (; 170 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 168 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9380,7 +9381,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 171 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 169 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9672,7 +9673,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 170 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9745,7 +9746,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -9754,7 +9755,7 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 174 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -9773,7 +9774,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $std/array/createReverseOrderedArray (; 175 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 173 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) i32.const 0 @@ -9807,7 +9808,7 @@ end local.get $1 ) - (func $~lib/math/NativeMath.random (; 176 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 174 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -9862,7 +9863,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 177 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 175 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) i32.const 0 @@ -9896,12 +9897,12 @@ end local.get $1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $std/array/isSorted (; 179 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9956,7 +9957,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted (; 180 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 178 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9981,7 +9982,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/assertSortedDefault (; 181 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 179 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -9994,27 +9995,27 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|43 (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|43 (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|44 (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $start:std/array~anonymous|45 (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|45 (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|46 (; 185 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|46 (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#constructor (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#constructor (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -10036,7 +10037,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 187 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 185 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -10066,7 +10067,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 188 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 186 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -10094,7 +10095,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (; 189 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 187 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10139,7 +10140,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 190 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 188 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10161,7 +10162,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 191 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 189 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10257,7 +10258,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 190 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10328,11 +10329,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#get:length (; 193 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#get:length (; 191 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 194 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10342,7 +10343,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 195 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -10374,7 +10375,7 @@ end local.get $2 ) - (func $std/array/isSorted<~lib/array/Array> (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 194 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10441,7 +10442,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/array/Array> (; 197 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 195 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10466,7 +10467,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array>#constructor (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -10488,7 +10489,7 @@ i32.store offset=12 local.get $0 ) - (func $std/array/Proxy#constructor (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -10503,7 +10504,7 @@ i32.store local.get $0 ) - (func $~lib/array/Array>#__unchecked_set (; 200 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__unchecked_set (; 198 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -10533,7 +10534,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array>#__set (; 201 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 199 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -10561,7 +10562,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedElementsArray (; 202 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 200 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10601,7 +10602,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 201 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10621,7 +10622,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort> (; 204 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort> (; 202 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10717,7 +10718,7 @@ unreachable end ) - (func $~lib/array/Array>#sort (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10788,11 +10789,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#get:length (; 206 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#get:length (; 204 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array>#__unchecked_get (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__unchecked_get (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10802,7 +10803,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#__get (; 208 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -10834,7 +10835,7 @@ end local.get $2 ) - (func $std/array/isSorted> (; 209 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10901,7 +10902,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted> (; 210 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 208 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10926,7 +10927,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 211 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 209 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11022,7 +11023,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String | null>#sort (; 212 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#sort (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11093,11 +11094,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#get:length (; 213 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#get:length (; 211 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 214 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 212 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -11107,7 +11108,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#__get (; 215 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__get (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -11127,7 +11128,7 @@ local.set $2 local.get $2 ) - (func $std/array/isSorted<~lib/string/String | null> (; 216 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 214 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11194,7 +11195,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 217 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 215 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11219,7 +11220,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 218 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 216 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -11227,7 +11228,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 219 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 217 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -11347,7 +11348,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 220 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 218 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11453,7 +11454,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 221 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 219 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -11474,7 +11475,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String | null> ) - (func $~lib/string/String.__eq (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 220 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -11547,7 +11548,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 223 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 221 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11566,7 +11567,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 224 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 222 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11663,7 +11664,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#constructor (; 225 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#constructor (; 223 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -11685,7 +11686,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/string/String#charAt (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (; 224 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -11711,7 +11712,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#concat (; 227 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 225 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11787,7 +11788,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 228 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11810,7 +11811,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/createRandomString (; 229 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 227 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -11872,7 +11873,7 @@ end local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 230 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 228 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -11902,7 +11903,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/string/String>#__set (; 231 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__set (; 229 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -11930,7 +11931,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createRandomStringArray (; 232 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomStringArray (; 230 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11968,7 +11969,7 @@ end local.get $1 ) - (func $~lib/util/sort/insertionSort<~lib/string/String> (; 233 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String> (; 231 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12064,7 +12065,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#sort (; 234 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#sort (; 232 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12135,11 +12136,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 235 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 233 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 236 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 234 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -12149,7 +12150,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 237 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 235 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -12181,7 +12182,7 @@ end local.get $2 ) - (func $std/array/isSorted<~lib/string/String> (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String> (; 236 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12248,7 +12249,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/string/String> (; 239 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String> (; 237 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -12273,7 +12274,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 240 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12379,7 +12380,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String>|trampoline (; 241 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String>|trampoline (; 239 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -12400,7 +12401,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String> ) - (func $~lib/string/String#substring (; 242 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 240 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12507,7 +12508,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/util/string/joinBooleanArray (; 243 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinBooleanArray (; 241 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12588,8 +12589,6 @@ local.set $10 i32.const 4 local.get $10 - i32.const 0 - i32.ne i32.eqz i32.add local.set $6 @@ -12642,8 +12641,6 @@ local.set $10 i32.const 4 local.get $10 - i32.const 0 - i32.ne i32.eqz i32.add local.set $6 @@ -12686,7 +12683,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 244 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 242 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12709,7 +12706,7 @@ local.get $4 return ) - (func $~lib/util/number/decimalCount32 (; 245 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 243 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -12775,7 +12772,7 @@ end unreachable ) - (func $~lib/util/number/utoa32_lut (; 246 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 244 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12917,7 +12914,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 247 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 245 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12972,12 +12969,12 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 248 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 246 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 249 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 247 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13034,7 +13031,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 250 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 248 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13182,7 +13179,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 251 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 249 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13205,7 +13202,7 @@ local.get $4 return ) - (func $~lib/util/number/utoa32 (; 252 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 250 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13240,12 +13237,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 253 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 251 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 254 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 252 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13282,7 +13279,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 255 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 253 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13430,7 +13427,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13453,14 +13450,7 @@ local.get $4 return ) - (func $~lib/number/isFinite (; 257 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/array/Array#__unchecked_get (; 258 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 255 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -13469,7 +13459,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 259 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -13478,7 +13468,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 260 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 257 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -13980,7 +13970,7 @@ end unreachable ) - (func $~lib/util/number/prettify (; 261 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 258 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14299,7 +14289,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 262 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 259 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14721,7 +14711,7 @@ local.get $2 i32.add ) - (func $~lib/util/number/dtoa (; 263 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 260 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14734,11 +14724,15 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 5552 call $~lib/rt/pure/__retain @@ -14780,7 +14774,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $~lib/util/number/dtoa_stream (; 264 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 261 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -14806,11 +14800,15 @@ return end local.get $2 - call $~lib/number/isFinite + local.get $2 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $2 - call $~lib/number/isNaN + local.get $2 + f64.ne if local.get $0 i32.const 78 @@ -14850,7 +14848,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/util/string/joinFloatArray (; 265 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinFloatArray (; 262 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14998,7 +14996,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 266 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 263 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15021,7 +15019,7 @@ local.get $4 return ) - (func $~lib/util/string/joinStringArray (; 267 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinStringArray (; 264 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15252,7 +15250,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/array/Array<~lib/string/String | null>#join (; 268 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join (; 265 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15275,11 +15273,11 @@ local.get $4 return ) - (func $std/array/Ref#toString (; 269 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/Ref#toString (; 266 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 6856 call $~lib/rt/pure/__retain ) - (func $~lib/util/string/joinReferenceArray (; 270 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray (; 267 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15493,7 +15491,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 271 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 268 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15516,7 +15514,7 @@ local.get $4 return ) - (func $~lib/util/string/joinReferenceArray (; 272 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray (; 269 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15730,7 +15728,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 273 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 270 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15753,12 +15751,12 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 274 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 271 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 275 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 272 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -15767,7 +15765,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 276 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 273 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15840,7 +15838,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 277 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 274 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15988,7 +15986,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 278 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 275 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16011,19 +16009,19 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 279 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 276 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 280 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 277 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 65535 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 281 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 278 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16066,7 +16064,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 282 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 279 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16214,7 +16212,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 283 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 280 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16237,12 +16235,12 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 284 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 281 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/util/number/decimalCount64 (; 285 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 282 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -16315,7 +16313,7 @@ end unreachable ) - (func $~lib/util/number/utoa64_lut (; 286 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 283 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -16442,7 +16440,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 287 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 284 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16451,7 +16449,9 @@ (local $6 i32) (local $7 i64) local.get $0 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if i32.const 4768 call $~lib/rt/pure/__retain @@ -16507,12 +16507,12 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 288 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 285 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/utoa64 return ) - (func $~lib/util/number/itoa_stream (; 289 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 286 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16526,7 +16526,9 @@ i32.add local.set $0 local.get $2 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $0 i32.const 48 @@ -16573,7 +16575,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 290 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 287 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16721,7 +16723,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 291 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 288 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16744,12 +16746,12 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 292 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 289 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa64 (; 293 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 290 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16759,7 +16761,9 @@ (local $7 i32) (local $8 i64) local.get $0 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if i32.const 4768 call $~lib/rt/pure/__retain @@ -16836,12 +16840,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 294 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 291 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/itoa64 return ) - (func $~lib/util/number/itoa_stream (; 295 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 292 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16856,7 +16860,9 @@ i32.add local.set $0 local.get $2 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $0 i32.const 48 @@ -16924,7 +16930,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 296 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 293 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17072,7 +17078,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 297 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17095,17 +17101,17 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 298 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 295 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 299 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 296 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array<~lib/string/String | null>#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 300 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 297 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17319,7 +17325,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 301 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 298 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17342,19 +17348,19 @@ local.get $4 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 302 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 299 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/util/number/itoa (; 303 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 300 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 304 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 301 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17397,7 +17403,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 305 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 302 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17545,7 +17551,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 306 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 303 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17568,12 +17574,12 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 307 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 304 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 308 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 305 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17787,7 +17793,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 309 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 306 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17810,17 +17816,17 @@ local.get $4 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 310 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 307 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/array/Array#toString (; 311 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 308 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 312 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 309 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -18034,7 +18040,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 313 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 310 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18057,12 +18063,12 @@ local.get $4 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 314 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 311 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (; 315 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (; 312 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -18276,7 +18282,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 316 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 313 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18299,12 +18305,12 @@ local.get $4 return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 317 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 314 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4672 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join ) - (func $start:std/array (; 318 ;) (type $FUNCSIG$v) + (func $start:std/array (; 315 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24603,7 +24609,7 @@ local.get $79 call $~lib/rt/pure/__release ) - (func $start (; 319 ;) (type $FUNCSIG$v) + (func $start (; 316 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -24613,16 +24619,16 @@ end call $start:std/array ) - (func $~lib/array/Array#__visit_impl (; 320 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 317 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 321 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 318 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 322 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 319 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 323 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 320 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -24752,7 +24758,7 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 321 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24791,13 +24797,13 @@ unreachable end ) - (func $~lib/array/Array#__visit_impl (; 325 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 322 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 326 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 323 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 327 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24836,7 +24842,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 328 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 325 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24875,7 +24881,7 @@ unreachable end ) - (func $~lib/array/Array>#__visit_impl (; 329 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array>#__visit_impl (; 326 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24914,7 +24920,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 330 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 327 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24953,7 +24959,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 331 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 328 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24992,25 +24998,25 @@ unreachable end ) - (func $~lib/array/Array#__visit_impl (; 332 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 329 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 333 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 330 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 334 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 331 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 335 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 332 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 336 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 333 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 337 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 334 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 338 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 335 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -25049,7 +25055,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 339 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 336 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -25088,7 +25094,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 340 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 337 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -25127,7 +25133,7 @@ unreachable end ) - (func $~lib/rt/__visit_members (; 341 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 338 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default @@ -25275,6 +25281,6 @@ end return ) - (func $null (; 342 ;) (type $FUNCSIG$v) + (func $null (; 339 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/libm.optimized.wat b/tests/compiler/std/libm.optimized.wat index 5ef20316b1..01b2b21aa5 100644 --- a/tests/compiler/std/libm.optimized.wat +++ b/tests/compiler/std/libm.optimized.wat @@ -1,11 +1,10 @@ (module (type $FUNCSIG$dd (func (param f64) (result f64))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$ddi (func (param f64 i32) (result f64))) (type $FUNCSIG$dddi (func (param f64 f64 i32) (result f64))) (type $FUNCSIG$ff (func (param f32) (result f32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) (type $FUNCSIG$ffi (func (param f32 i32) (result f32))) (type $FUNCSIG$v (func)) @@ -938,12 +937,7 @@ local.get $0 call $~lib/math/NativeMath.asinh ) - (func $~lib/number/isNaN (; 12 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/math/NativeMath.atan (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 12 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -962,7 +956,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -1168,11 +1163,11 @@ local.get $3 f64.copysign ) - (func $../../lib/libm/assembly/libm/atan (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/atan (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.atan ) - (func $~lib/math/NativeMath.atanh (; 15 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 f64) @@ -1226,25 +1221,25 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/atanh (; 16 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/atanh (; 15 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.atanh ) - (func $~lib/math/NativeMath.atan2 (; 17 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 16 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) (local $6 i32) (local $7 i32) + i32.const 1 + local.get $0 + local.get $0 + f64.ne local.get $1 - call $~lib/number/isNaN - if (result i32) - i32.const 1 - else - local.get $0 - call $~lib/number/isNaN - end + local.get $1 + f64.ne + select if local.get $1 local.get $0 @@ -1450,12 +1445,12 @@ i32.and select ) - (func $../../lib/libm/assembly/libm/atan2 (; 18 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/atan2 (; 17 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.atan2 ) - (func $~lib/math/NativeMath.cbrt (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 18 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -1577,22 +1572,15 @@ f64.mul f64.add ) - (func $../../lib/libm/assembly/libm/cbrt (; 20 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cbrt (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cbrt ) - (func $../../lib/libm/assembly/libm/ceil (; 21 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/ceil (; 20 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.ceil ) - (func $~lib/number/isFinite (; 22 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/math/dtoi32 (; 23 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/math/dtoi32 (; 21 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 f64.const 4294967296 local.get $0 @@ -1604,21 +1592,22 @@ i64.trunc_f64_s i32.wrap_i64 ) - (func $../../lib/libm/assembly/libm/clz32 (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) - block $__inlined_func$~lib/math/NativeMath.clz32 (result f64) + (func $../../lib/libm/assembly/libm/clz32 (; 22 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if (result f64) f64.const 32 - local.get $0 - call $~lib/number/isFinite - i32.eqz - br_if $__inlined_func$~lib/math/NativeMath.clz32 - drop + else local.get $0 call $~lib/math/dtoi32 i32.clz f64.convert_i32_s end ) - (func $~lib/math/pio2_large_quot (; 25 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/math/pio2_large_quot (; 23 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i64) (local $2 i64) (local $3 i64) @@ -1910,7 +1899,7 @@ i64.sub i32.wrap_i64 ) - (func $~lib/math/NativeMath.cos (; 26 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 f64) @@ -2250,11 +2239,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libm/cos (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cos (; 25 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cos ) - (func $~lib/math/NativeMath.expm1 (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 26 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -2281,7 +2270,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -2526,7 +2516,7 @@ local.get $4 f64.mul ) - (func $~lib/math/NativeMath.scalbn (; 29 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 27 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) local.get $1 i32.const 1023 i32.gt_s @@ -2603,7 +2593,7 @@ f64.reinterpret_i64 f64.mul ) - (func $~lib/math/NativeMath.exp (; 30 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -2628,7 +2618,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -2755,7 +2746,7 @@ local.get $1 call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 31 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) local.get $0 @@ -2819,28 +2810,28 @@ f64.const 2247116418577894884661631e283 f64.mul ) - (func $../../lib/libm/assembly/libm/cosh (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cosh (; 30 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cosh ) - (func $../../lib/libm/assembly/libm/exp (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/exp (; 31 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.exp ) - (func $../../lib/libm/assembly/libm/expm1 (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/expm1 (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.expm1 ) - (func $../../lib/libm/assembly/libm/floor (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/floor (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.floor ) - (func $../../lib/libm/assembly/libm/fround (; 36 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/fround (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f32.demote_f64 f64.promote_f32 ) - (func $~lib/math/NativeMath.hypot (; 37 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 35 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 f64) (local $4 i64) @@ -3011,34 +3002,42 @@ f64.sqrt f64.mul ) - (func $../../lib/libm/assembly/libm/hypot (; 38 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/hypot (; 36 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.hypot ) - (func $../../lib/libm/assembly/libm/imul (; 39 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) - block $__inlined_func$~lib/math/NativeMath.imul (result f64) + (func $~lib/math/NativeMath.imul (; 37 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) + local.get $0 + local.get $1 + f64.add + local.tee $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if f64.const 0 - local.get $0 - local.get $1 - f64.add - call $~lib/number/isFinite - i32.eqz - br_if $__inlined_func$~lib/math/NativeMath.imul - drop - local.get $0 - call $~lib/math/dtoi32 - local.get $1 - call $~lib/math/dtoi32 - i32.mul - f64.convert_i32_s + return end + local.get $0 + call $~lib/math/dtoi32 + local.get $1 + call $~lib/math/dtoi32 + i32.mul + f64.convert_i32_s + ) + (func $../../lib/libm/assembly/libm/imul (; 38 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + local.get $0 + local.get $1 + call $~lib/math/NativeMath.imul ) - (func $../../lib/libm/assembly/libm/log (; 40 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log (; 39 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log ) - (func $~lib/math/NativeMath.log10 (; 41 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 40 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -3242,15 +3241,15 @@ local.get $1 f64.add ) - (func $../../lib/libm/assembly/libm/log10 (; 42 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log10 (; 41 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log10 ) - (func $../../lib/libm/assembly/libm/log1p (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log1p (; 42 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log1p ) - (func $~lib/math/NativeMath.log2 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -3447,21 +3446,21 @@ local.get $1 f64.add ) - (func $../../lib/libm/assembly/libm/log2 (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log2 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log2 ) - (func $../../lib/libm/assembly/libm/max (; 46 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/max (; 45 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 f64.max ) - (func $../../lib/libm/assembly/libm/min (; 47 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/min (; 46 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 f64.min ) - (func $~lib/math/NativeMath.pow (; 48 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 47 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -4369,12 +4368,12 @@ f64.const 1e-300 f64.mul ) - (func $../../lib/libm/assembly/libm/pow (; 49 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/pow (; 48 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.pow ) - (func $../../lib/libm/assembly/libm/round (; 50 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/round (; 49 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.const 0.5 f64.add @@ -4382,7 +4381,7 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/sign (; 51 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sign (; 50 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.abs f64.const 0 @@ -4395,7 +4394,7 @@ end local.get $0 ) - (func $~lib/math/NativeMath.sin (; 52 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 51 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 f64) @@ -4717,11 +4716,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libm/sin (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sin (; 52 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.sin ) - (func $~lib/math/NativeMath.sinh (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -4798,15 +4797,15 @@ f64.mul f64.mul ) - (func $../../lib/libm/assembly/libm/sinh (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sinh (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.sinh ) - (func $../../lib/libm/assembly/libm/sqrt (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sqrt (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.sqrt ) - (func $~lib/math/tan_kern (; 57 ;) (type $FUNCSIG$dddi) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) + (func $~lib/math/tan_kern (; 56 ;) (type $FUNCSIG$dddi) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 f64) (local $4 f64) (local $5 f64) @@ -4988,7 +4987,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.tan (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 57 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -5167,11 +5166,11 @@ i32.sub call $~lib/math/tan_kern ) - (func $../../lib/libm/assembly/libm/tan (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/tan (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.tan ) - (func $~lib/math/NativeMath.tanh (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -5250,19 +5249,19 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/tanh (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/tanh (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.tanh ) - (func $../../lib/libm/assembly/libm/trunc (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/trunc (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.trunc ) - (func $../../lib/libm/assembly/libmf/abs (; 63 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/abs (; 62 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.abs ) - (func $~lib/math/Rf (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 63 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.const 0.16666586697101593 local.get $0 @@ -5281,7 +5280,7 @@ f32.add f32.div ) - (func $~lib/math/NativeMathf.acos (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -5397,11 +5396,11 @@ f32.add f32.mul ) - (func $../../lib/libm/assembly/libmf/acos (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/acos (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.acos ) - (func $~lib/math/NativeMathf.log1p (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -5571,7 +5570,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.log (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -5705,7 +5704,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.acosh (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) local.get $0 i32.reinterpret_f32 @@ -5755,11 +5754,11 @@ f32.const 0.6931471824645996 f32.add ) - (func $../../lib/libm/assembly/libmf/acosh (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/acosh (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.acosh ) - (func $~lib/math/NativeMathf.asin (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f64) @@ -5839,11 +5838,11 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/asin (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/asin (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.asin ) - (func $~lib/math/NativeMathf.asinh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -5908,16 +5907,11 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/asinh (; 74 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/asinh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.asinh ) - (func $~lib/number/isNaN (; 75 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/math/NativeMathf.atan (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 74 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -5933,7 +5927,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne if local.get $0 return @@ -6115,11 +6110,11 @@ local.get $4 f32.copysign ) - (func $../../lib/libm/assembly/libmf/atan (; 77 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atan (; 75 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.atan ) - (func $~lib/math/NativeMathf.atanh (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -6167,22 +6162,22 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/atanh (; 79 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atanh (; 77 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.atanh ) - (func $~lib/math/NativeMathf.atan2 (; 80 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 78 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) + i32.const 1 + local.get $0 + local.get $0 + f32.ne local.get $1 - call $~lib/number/isNaN - if (result i32) - i32.const 1 - else - local.get $0 - call $~lib/number/isNaN - end + local.get $1 + f32.ne + select if local.get $1 local.get $0 @@ -6367,12 +6362,12 @@ i32.and select ) - (func $../../lib/libm/assembly/libmf/atan2 (; 81 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atan2 (; 79 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.atan2 ) - (func $~lib/math/NativeMathf.cbrt (; 82 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 80 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 f64) (local $3 i32) @@ -6471,29 +6466,23 @@ f64.div f32.demote_f64 ) - (func $../../lib/libm/assembly/libmf/cbrt (; 83 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cbrt (; 81 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cbrt ) - (func $../../lib/libm/assembly/libmf/ceil (; 84 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/ceil (; 82 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.ceil ) - (func $~lib/number/isFinite (; 85 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $../../lib/libm/assembly/libmf/clz32 (; 83 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 local.get $0 f32.sub f32.const 0 - f32.eq - ) - (func $../../lib/libm/assembly/libmf/clz32 (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) - block $__inlined_func$~lib/math/NativeMathf.clz32 (result f32) + f32.ne + if (result f32) f32.const 32 - local.get $0 - call $~lib/number/isFinite - i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.clz32 - drop + else local.get $0 f64.promote_f32 call $~lib/math/dtoi32 @@ -6501,7 +6490,7 @@ f32.convert_i32_s end ) - (func $~lib/math/NativeMathf.cos (; 87 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 84 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -6771,11 +6760,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libmf/cos (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cos (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cos ) - (func $~lib/math/NativeMathf.expm1 (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -7027,7 +7016,7 @@ local.get $4 f32.mul ) - (func $~lib/math/NativeMathf.scalbn (; 90 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 87 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) local.get $1 i32.const 127 i32.gt_s @@ -7103,7 +7092,7 @@ f32.reinterpret_i32 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7231,7 +7220,7 @@ local.get $1 call $~lib/math/NativeMathf.scalbn ) - (func $~lib/math/NativeMathf.cosh (; 92 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) local.get $0 i32.reinterpret_f32 @@ -7290,26 +7279,26 @@ f32.const 1661534994731144841129758e11 f32.mul ) - (func $../../lib/libm/assembly/libmf/cosh (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cosh (; 90 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cosh ) - (func $../../lib/libm/assembly/libmf/exp (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/exp (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.exp ) - (func $../../lib/libm/assembly/libmf/expm1 (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/expm1 (; 92 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.expm1 ) - (func $../../lib/libm/assembly/libmf/floor (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/floor (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.floor ) - (func $../../lib/libm/assembly/libmf/fround (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/fround (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 ) - (func $~lib/math/NativeMathf.hypot (; 98 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 95 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -7414,19 +7403,23 @@ f32.sqrt f32.mul ) - (func $../../lib/libm/assembly/libmf/hypot (; 99 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/hypot (; 96 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.hypot ) - (func $../../lib/libm/assembly/libmf/imul (; 100 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/imul (; 97 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (local $2 f32) block $~lib/math/NativeMathf.imul|inlined.0 (result f32) f32.const 0 local.get $0 local.get $1 f32.add - call $~lib/number/isFinite - i32.eqz + local.tee $2 + local.get $2 + f32.sub + f32.const 0 + f32.ne br_if $~lib/math/NativeMathf.imul|inlined.0 drop local.get $0 @@ -7439,11 +7432,11 @@ f32.convert_i32_s end ) - (func $../../lib/libm/assembly/libmf/log (; 101 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log ) - (func $~lib/math/NativeMathf.log10 (; 102 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 99 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -7601,15 +7594,15 @@ f32.mul f32.add ) - (func $../../lib/libm/assembly/libmf/log10 (; 103 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log10 (; 100 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log10 ) - (func $../../lib/libm/assembly/libmf/log1p (; 104 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log1p (; 101 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log1p ) - (func $~lib/math/NativeMathf.log2 (; 105 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 102 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -7759,21 +7752,21 @@ f32.convert_i32_s f32.add ) - (func $../../lib/libm/assembly/libmf/log2 (; 106 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log2 (; 103 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log2 ) - (func $../../lib/libm/assembly/libmf/max (; 107 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/max (; 104 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 f32.max ) - (func $../../lib/libm/assembly/libmf/min (; 108 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/min (; 105 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 f32.min ) - (func $~lib/math/NativeMathf.pow (; 109 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 106 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) (local $4 i32) @@ -8559,12 +8552,12 @@ f32.const 1.0000000031710769e-30 f32.mul ) - (func $../../lib/libm/assembly/libmf/pow (; 110 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/pow (; 107 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.pow ) - (func $../../lib/libm/assembly/libmf/round (; 111 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/round (; 108 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.const 0.5 f32.add @@ -8572,7 +8565,7 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/sign (; 112 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sign (; 109 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.abs f32.const 0 @@ -8585,7 +8578,7 @@ end local.get $0 ) - (func $~lib/math/NativeMathf.sin (; 113 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 110 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -8856,11 +8849,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libmf/sin (; 114 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sin (; 111 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.sin ) - (func $~lib/math/NativeMathf.sinh (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 112 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -8932,15 +8925,15 @@ f32.mul f32.mul ) - (func $../../lib/libm/assembly/libmf/sinh (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sinh (; 113 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.sinh ) - (func $../../lib/libm/assembly/libmf/sqrt (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sqrt (; 114 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.sqrt ) - (func $~lib/math/NativeMathf.tan (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -9195,11 +9188,11 @@ local.get $1 f32.demote_f64 ) - (func $../../lib/libm/assembly/libmf/tan (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/tan (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.tan ) - (func $~lib/math/NativeMathf.tanh (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -9273,15 +9266,15 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/tanh (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/tanh (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.tanh ) - (func $../../lib/libm/assembly/libmf/trunc (; 122 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/trunc (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.trunc ) - (func $null (; 123 ;) (type $FUNCSIG$v) + (func $null (; 120 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/libm.untouched.wat b/tests/compiler/std/libm.untouched.wat index 7468136d4d..71254be045 100644 --- a/tests/compiler/std/libm.untouched.wat +++ b/tests/compiler/std/libm.untouched.wat @@ -1,12 +1,11 @@ (module (type $FUNCSIG$dd (func (param f64) (result f64))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$idj (func (param f64 i64) (result i32))) (type $FUNCSIG$ddi (func (param f64 i32) (result f64))) (type $FUNCSIG$dddi (func (param f64 f64 i32) (result f64))) (type $FUNCSIG$ff (func (param f32) (result f32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) (type $FUNCSIG$ffi (func (param f32 i32) (result f32))) (type $FUNCSIG$v (func)) @@ -1111,12 +1110,7 @@ local.get $0 call $~lib/math/NativeMath.asinh ) - (func $~lib/number/isNaN (; 12 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/math/NativeMath.atan (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 12 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 f64) @@ -1143,7 +1137,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -1373,11 +1368,11 @@ local.get $2 f64.copysign ) - (func $../../lib/libm/assembly/libm/atan (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/atan (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.atan ) - (func $~lib/math/NativeMath.atanh (; 15 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 f64) @@ -1436,11 +1431,11 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/atanh (; 16 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/atanh (; 15 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.atanh ) - (func $~lib/math/NativeMath.atan2 (; 17 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 16 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -1451,12 +1446,14 @@ (local $9 f64) (local $10 f64) local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne if (result i32) i32.const 1 else local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne end if local.get $1 @@ -1739,12 +1736,12 @@ end unreachable ) - (func $../../lib/libm/assembly/libm/atan2 (; 18 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/atan2 (; 17 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.atan2 ) - (func $~lib/math/NativeMath.cbrt (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 18 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -1888,25 +1885,18 @@ local.set $3 local.get $3 ) - (func $../../lib/libm/assembly/libm/cbrt (; 20 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cbrt (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cbrt ) - (func $../../lib/libm/assembly/libm/ceil (; 21 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/ceil (; 20 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.ceil ) - (func $~lib/number/isFinite (; 22 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/math/dtoi32 (; 23 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/math/dtoi32 (; 21 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i64) (local $3 i64) @@ -1977,9 +1967,12 @@ local.get $1 return ) - (func $~lib/math/NativeMath.clz32 (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 22 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if f64.const 32 @@ -1990,11 +1983,11 @@ i32.clz f64.convert_i32_s ) - (func $../../lib/libm/assembly/libm/clz32 (; 25 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/clz32 (; 23 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.clz32 ) - (func $~lib/math/pio2_large_quot (; 26 ;) (type $FUNCSIG$idj) (param $0 f64) (param $1 i64) (result i32) + (func $~lib/math/pio2_large_quot (; 24 ;) (type $FUNCSIG$idj) (param $0 f64) (param $1 i64) (result i32) (local $2 i32) (local $3 i64) (local $4 i64) @@ -2396,7 +2389,7 @@ local.get $31 i32.wrap_i64 ) - (func $~lib/math/NativeMath.cos (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 25 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -2914,11 +2907,11 @@ local.get $0 end ) - (func $../../lib/libm/assembly/libm/cos (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cos (; 26 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cos ) - (func $~lib/math/NativeMath.expm1 (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -2956,7 +2949,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -3230,7 +3224,7 @@ local.get $14 f64.mul ) - (func $~lib/math/NativeMath.scalbn (; 30 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 28 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) (local $4 i32) @@ -3321,7 +3315,7 @@ f64.reinterpret_i64 f64.mul ) - (func $~lib/math/NativeMath.exp (; 31 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) @@ -3350,7 +3344,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -3486,7 +3481,7 @@ local.get $5 call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 30 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -3575,26 +3570,26 @@ local.set $3 local.get $3 ) - (func $../../lib/libm/assembly/libm/cosh (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cosh (; 31 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cosh ) - (func $../../lib/libm/assembly/libm/exp (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/exp (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.exp ) - (func $../../lib/libm/assembly/libm/expm1 (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/expm1 (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.expm1 ) - (func $../../lib/libm/assembly/libm/floor (; 36 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/floor (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.floor ) - (func $../../lib/libm/assembly/libm/fround (; 37 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/fround (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 @@ -3602,7 +3597,7 @@ f32.demote_f64 f64.promote_f32 ) - (func $~lib/math/NativeMath.hypot (; 38 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 36 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -3797,16 +3792,21 @@ f64.sqrt f64.mul ) - (func $../../lib/libm/assembly/libm/hypot (; 39 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/hypot (; 37 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.hypot ) - (func $~lib/math/NativeMath.imul (; 40 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 38 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) local.get $0 local.get $1 f64.add - call $~lib/number/isFinite + local.tee $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq i32.eqz if f64.const 0 @@ -3819,16 +3819,16 @@ i32.mul f64.convert_i32_s ) - (func $../../lib/libm/assembly/libm/imul (; 41 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/imul (; 39 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.imul ) - (func $../../lib/libm/assembly/libm/log (; 42 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log (; 40 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log ) - (func $~lib/math/NativeMath.log10 (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 41 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -4088,15 +4088,15 @@ local.get $8 f64.add ) - (func $../../lib/libm/assembly/libm/log10 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log10 (; 42 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log10 ) - (func $../../lib/libm/assembly/libm/log1p (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log1p (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log1p ) - (func $~lib/math/NativeMath.log2 (; 46 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -4349,11 +4349,11 @@ local.get $14 f64.add ) - (func $../../lib/libm/assembly/libm/log2 (; 47 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log2 (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log2 ) - (func $../../lib/libm/assembly/libm/max (; 48 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/max (; 46 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) local.get $0 @@ -4364,7 +4364,7 @@ local.get $2 f64.max ) - (func $../../lib/libm/assembly/libm/min (; 49 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/min (; 47 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) local.get $0 @@ -4375,7 +4375,7 @@ local.get $2 f64.min ) - (func $~lib/math/NativeMath.pow (; 50 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 48 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -5455,12 +5455,12 @@ local.get $16 f64.mul ) - (func $../../lib/libm/assembly/libm/pow (; 51 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/pow (; 49 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.pow ) - (func $../../lib/libm/assembly/libm/round (; 52 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/round (; 50 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 @@ -5471,7 +5471,7 @@ local.get $1 f64.copysign ) - (func $../../lib/libm/assembly/libm/sign (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sign (; 51 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 @@ -5494,7 +5494,7 @@ br $~lib/math/NativeMath.sign|inlined.0 end ) - (func $~lib/math/NativeMath.sin (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 52 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -6023,11 +6023,11 @@ local.get $0 end ) - (func $../../lib/libm/assembly/libm/sin (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sin (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.sin ) - (func $~lib/math/NativeMath.sinh (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -6125,18 +6125,18 @@ local.set $4 local.get $4 ) - (func $../../lib/libm/assembly/libm/sinh (; 57 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sinh (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.sinh ) - (func $../../lib/libm/assembly/libm/sqrt (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sqrt (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.sqrt ) - (func $~lib/math/tan_kern (; 59 ;) (type $FUNCSIG$dddi) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) + (func $~lib/math/tan_kern (; 57 ;) (type $FUNCSIG$dddi) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 f64) (local $4 f64) (local $5 f64) @@ -6349,7 +6349,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.tan (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -6661,11 +6661,11 @@ i32.sub call $~lib/math/tan_kern ) - (func $../../lib/libm/assembly/libm/tan (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/tan (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.tan ) - (func $~lib/math/NativeMath.tanh (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -6757,25 +6757,25 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/tanh (; 63 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/tanh (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.tanh ) - (func $../../lib/libm/assembly/libm/trunc (; 64 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/trunc (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.trunc ) - (func $../../lib/libm/assembly/libmf/abs (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/abs (; 63 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.abs ) - (func $~lib/math/Rf (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) local.get $0 @@ -6800,7 +6800,7 @@ local.get $2 f32.div ) - (func $~lib/math/NativeMathf.acos (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -6940,11 +6940,11 @@ f32.add f32.mul ) - (func $../../lib/libm/assembly/libmf/acos (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/acos (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.acos ) - (func $~lib/math/NativeMathf.log1p (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -7153,7 +7153,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.log (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7321,7 +7321,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.acosh (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7377,11 +7377,11 @@ f32.const 0.6931471824645996 f32.add ) - (func $../../lib/libm/assembly/libmf/acosh (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/acosh (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.acosh ) - (func $~lib/math/NativeMathf.asin (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -7473,11 +7473,11 @@ local.get $1 f32.copysign ) - (func $../../lib/libm/assembly/libmf/asin (; 74 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/asin (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.asin ) - (func $~lib/math/NativeMathf.asinh (; 75 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) local.get $0 @@ -7546,16 +7546,11 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/asinh (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/asinh (; 74 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.asinh ) - (func $~lib/number/isNaN (; 77 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/math/NativeMathf.atan (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 75 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -7579,7 +7574,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne if local.get $0 return @@ -7784,11 +7780,11 @@ local.get $2 f32.copysign ) - (func $../../lib/libm/assembly/libmf/atan (; 79 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atan (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.atan ) - (func $~lib/math/NativeMathf.atanh (; 80 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 77 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) local.get $0 @@ -7838,11 +7834,11 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/atanh (; 81 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atanh (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.atanh ) - (func $~lib/math/NativeMathf.atan2 (; 82 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 79 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7850,12 +7846,14 @@ (local $6 f32) (local $7 f32) local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne if (result i32) i32.const 1 else local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne end if local.get $1 @@ -8112,12 +8110,12 @@ end unreachable ) - (func $../../lib/libm/assembly/libmf/atan2 (; 83 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atan2 (; 80 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.atan2 ) - (func $~lib/math/NativeMathf.cbrt (; 84 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 81 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -8233,27 +8231,23 @@ local.get $3 f32.demote_f64 ) - (func $../../lib/libm/assembly/libmf/cbrt (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cbrt (; 82 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cbrt ) - (func $../../lib/libm/assembly/libmf/ceil (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/ceil (; 83 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.ceil ) - (func $~lib/number/isFinite (; 87 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/math/NativeMathf.clz32 (; 84 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 local.get $0 f32.sub f32.const 0 f32.eq - ) - (func $~lib/math/NativeMathf.clz32 (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) - local.get $0 - call $~lib/number/isFinite i32.eqz if f32.const 32 @@ -8265,11 +8259,11 @@ i32.clz f32.convert_i32_s ) - (func $../../lib/libm/assembly/libmf/clz32 (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/clz32 (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.clz32 ) - (func $~lib/math/NativeMathf.cos (; 90 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -8887,11 +8881,11 @@ local.get $27 end ) - (func $../../lib/libm/assembly/libmf/cos (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cos (; 87 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cos ) - (func $~lib/math/NativeMathf.expm1 (; 92 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9184,7 +9178,7 @@ local.get $13 f32.mul ) - (func $~lib/math/NativeMathf.scalbn (; 93 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 89 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -9274,7 +9268,7 @@ f32.reinterpret_i32 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 90 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -9418,7 +9412,7 @@ local.get $5 call $~lib/math/NativeMathf.scalbn ) - (func $~lib/math/NativeMathf.cosh (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -9495,32 +9489,32 @@ local.get $3 f32.mul ) - (func $../../lib/libm/assembly/libmf/cosh (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cosh (; 92 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cosh ) - (func $../../lib/libm/assembly/libmf/exp (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/exp (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.exp ) - (func $../../lib/libm/assembly/libmf/expm1 (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/expm1 (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.expm1 ) - (func $../../lib/libm/assembly/libmf/floor (; 99 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/floor (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.floor ) - (func $../../lib/libm/assembly/libmf/fround (; 100 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/fround (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 ) - (func $~lib/math/NativeMathf.hypot (; 101 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 97 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9637,14 +9631,15 @@ f32.sqrt f32.mul ) - (func $../../lib/libm/assembly/libmf/hypot (; 102 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/hypot (; 98 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.hypot ) - (func $../../lib/libm/assembly/libmf/imul (; 103 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/imul (; 99 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) + (local $4 f32) block $~lib/math/NativeMathf.imul|inlined.0 (result f32) local.get $0 local.set $3 @@ -9653,7 +9648,11 @@ local.get $3 local.get $2 f32.add - call $~lib/number/isFinite + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq i32.eqz if f32.const 0 @@ -9669,11 +9668,11 @@ f32.convert_i32_s end ) - (func $../../lib/libm/assembly/libmf/log (; 104 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log (; 100 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log ) - (func $~lib/math/NativeMathf.log10 (; 105 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 101 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -9873,15 +9872,15 @@ f32.mul f32.add ) - (func $../../lib/libm/assembly/libmf/log10 (; 106 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log10 (; 102 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log10 ) - (func $../../lib/libm/assembly/libmf/log1p (; 107 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log1p (; 103 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log1p ) - (func $~lib/math/NativeMathf.log2 (; 108 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 104 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -10076,11 +10075,11 @@ local.get $14 f32.add ) - (func $../../lib/libm/assembly/libmf/log2 (; 109 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log2 (; 105 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log2 ) - (func $../../lib/libm/assembly/libmf/max (; 110 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/max (; 106 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) local.get $0 @@ -10091,7 +10090,7 @@ local.get $2 f32.max ) - (func $../../lib/libm/assembly/libmf/min (; 111 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/min (; 107 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) local.get $0 @@ -10102,7 +10101,7 @@ local.get $2 f32.min ) - (func $~lib/math/NativeMathf.pow (; 112 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 108 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11036,12 +11035,12 @@ local.get $11 f32.mul ) - (func $../../lib/libm/assembly/libmf/pow (; 113 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/pow (; 109 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.pow ) - (func $../../lib/libm/assembly/libmf/round (; 114 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/round (; 110 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 @@ -11052,7 +11051,7 @@ local.get $1 f32.copysign ) - (func $../../lib/libm/assembly/libmf/sign (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sign (; 111 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 @@ -11075,7 +11074,7 @@ br $~lib/math/NativeMathf.sign|inlined.0 end ) - (func $~lib/math/NativeMathf.sin (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 112 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -11685,11 +11684,11 @@ local.get $27 end ) - (func $../../lib/libm/assembly/libmf/sin (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sin (; 113 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.sin ) - (func $~lib/math/NativeMathf.sinh (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 114 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -11778,18 +11777,18 @@ local.set $3 local.get $3 ) - (func $../../lib/libm/assembly/libmf/sinh (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sinh (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.sinh ) - (func $../../lib/libm/assembly/libmf/sqrt (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sqrt (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.sqrt ) - (func $~lib/math/NativeMathf.tan (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12440,11 +12439,11 @@ end f32.demote_f64 ) - (func $../../lib/libm/assembly/libmf/tan (; 122 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/tan (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.tan ) - (func $~lib/math/NativeMathf.tanh (; 123 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -12530,17 +12529,17 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/tanh (; 124 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/tanh (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.tanh ) - (func $../../lib/libm/assembly/libmf/trunc (; 125 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/trunc (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.trunc ) - (func $null (; 126 ;) (type $FUNCSIG$v) + (func $null (; 122 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index d361817662..bb1b370b5d 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1,9 +1,8 @@ (module - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$dddd (func (param f64 f64 f64) (result f64))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$ddi (func (param f64 i32) (result f64))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$ffff (func (param f32 f32 f32) (result f32))) (type $FUNCSIG$ffi (func (param f32 i32) (result f32))) (type $FUNCSIG$dd (func (param f64) (result f64))) @@ -89,19 +88,7 @@ (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0)) (export "memory" (memory $0)) (start $start) - (func $~lib/number/isNaN (; 32 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/number/isFinite (; 33 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/math/NativeMath.scalbn (; 34 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 32 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) local.get $1 i32.const 1023 i32.gt_s @@ -178,16 +165,16 @@ f64.reinterpret_i64 f64.mul ) - (func $std/math/ulperr (; 35 ;) (type $FUNCSIG$dddd) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) + (func $std/math/ulperr (; 33 ;) (type $FUNCSIG$dddd) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) (local $3 i32) + local.get $1 + local.get $1 + f64.ne + i32.const 0 local.get $0 - call $~lib/number/isNaN - if (result i32) - local.get $1 - call $~lib/number/isNaN - else - i32.const 0 - end + local.get $0 + f64.ne + select if f64.const 0 return @@ -227,8 +214,10 @@ return end local.get $0 - call $~lib/number/isFinite - i32.eqz + local.get $0 + f64.sub + f64.const 0 + f64.ne if local.get $1 f64.const 0.5 @@ -266,7 +255,7 @@ local.get $2 f64.add ) - (func $std/math/check (; 36 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/check (; 34 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 f64.eq @@ -275,10 +264,12 @@ return end local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne return end local.get $0 @@ -294,12 +285,7 @@ end i32.const 1 ) - (func $~lib/number/isNaN (; 37 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/math/NativeMathf.scalbn (; 38 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 35 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) local.get $1 i32.const 127 i32.gt_s @@ -375,16 +361,16 @@ f32.reinterpret_i32 f32.mul ) - (func $std/math/ulperrf (; 39 ;) (type $FUNCSIG$ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) + (func $std/math/ulperrf (; 36 ;) (type $FUNCSIG$ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) (local $3 i32) + local.get $1 + local.get $1 + f32.ne + i32.const 0 local.get $0 - call $~lib/number/isNaN - if (result i32) - local.get $1 - call $~lib/number/isNaN - else - i32.const 0 - end + local.get $0 + f32.ne + select if f32.const 0 return @@ -462,7 +448,7 @@ local.get $2 f32.add ) - (func $std/math/check (; 40 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/check (; 37 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 f32.eq @@ -471,10 +457,12 @@ return end local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne return end local.get $0 @@ -490,7 +478,7 @@ end i32.const 1 ) - (func $std/math/test_scalbn (; 41 ;) (type $FUNCSIG$idid) (param $0 f64) (param $1 i32) (param $2 f64) (result i32) + (func $std/math/test_scalbn (; 38 ;) (type $FUNCSIG$idid) (param $0 f64) (param $1 i32) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.scalbn @@ -498,7 +486,7 @@ f64.const 0 call $std/math/check ) - (func $std/math/test_scalbnf (; 42 ;) (type $FUNCSIG$ifif) (param $0 f32) (param $1 i32) (param $2 f32) (result i32) + (func $std/math/test_scalbnf (; 39 ;) (type $FUNCSIG$ifif) (param $0 f32) (param $1 i32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.scalbn @@ -506,7 +494,7 @@ f32.const 0 call $std/math/check ) - (func $std/math/test_abs (; 43 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_abs (; 40 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.abs local.get $1 @@ -522,14 +510,14 @@ i32.const 0 end ) - (func $std/math/test_absf (; 44 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_absf (; 41 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.abs local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/R (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/R (; 42 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.const 0.16666666666666666 local.get $0 @@ -572,7 +560,7 @@ f64.add f64.div ) - (func $~lib/math/NativeMath.acos (; 46 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -696,7 +684,7 @@ f64.add f64.mul ) - (func $std/math/test_acos (; 47 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_acos (; 44 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.acos local.get $1 @@ -712,7 +700,7 @@ i32.const 0 end ) - (func $~lib/math/Rf (; 48 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 45 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.const 0.16666586697101593 local.get $0 @@ -731,7 +719,7 @@ f32.add f32.div ) - (func $~lib/math/NativeMathf.acos (; 49 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 46 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -847,14 +835,14 @@ f32.add f32.mul ) - (func $std/math/test_acosf (; 50 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_acosf (; 47 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.acos local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.log1p (; 51 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 48 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -1053,7 +1041,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.log (; 52 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 49 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (local $3 f64) @@ -1223,7 +1211,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.acosh (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 50 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) local.get $0 i64.reinterpret_f64 @@ -1277,7 +1265,7 @@ f64.const 0.6931471805599453 f64.add ) - (func $std/math/test_acosh (; 54 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_acosh (; 51 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.acosh local.get $1 @@ -1293,7 +1281,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log1p (; 55 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 52 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -1463,7 +1451,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.log (; 56 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 53 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -1597,7 +1585,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.acosh (; 57 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 54 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) local.get $0 i32.reinterpret_f32 @@ -1647,14 +1635,14 @@ f32.const 0.6931471824645996 f32.add ) - (func $std/math/test_acoshf (; 58 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_acoshf (; 55 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.acosh local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.asin (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -1792,7 +1780,7 @@ end local.get $0 ) - (func $std/math/test_asin (; 60 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_asin (; 57 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.asin local.get $1 @@ -1808,7 +1796,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.asin (; 61 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 58 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f64) @@ -1888,14 +1876,14 @@ local.get $0 f32.copysign ) - (func $std/math/test_asinf (; 62 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_asinf (; 59 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.asin local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.asinh (; 63 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) local.get $0 @@ -1965,7 +1953,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_asinh (; 64 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_asinh (; 61 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.asinh local.get $1 @@ -1981,7 +1969,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.asinh (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 62 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -2046,14 +2034,14 @@ local.get $0 f32.copysign ) - (func $std/math/test_asinhf (; 66 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_asinhf (; 63 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.asinh local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.atan (; 67 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 64 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -2072,7 +2060,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -2278,7 +2267,7 @@ local.get $3 f64.copysign ) - (func $std/math/test_atan (; 68 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_atan (; 65 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.atan local.get $1 @@ -2294,7 +2283,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -2310,7 +2299,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne if local.get $0 return @@ -2492,14 +2482,14 @@ local.get $4 f32.copysign ) - (func $std/math/test_atanf (; 70 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_atanf (; 67 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.atan local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.atanh (; 71 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 68 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 f64) @@ -2553,7 +2543,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_atanh (; 72 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_atanh (; 69 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.atanh local.get $1 @@ -2569,7 +2559,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atanh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -2617,28 +2607,28 @@ local.get $0 f32.copysign ) - (func $std/math/test_atanhf (; 74 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_atanhf (; 71 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.atanh local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.atan2 (; 75 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 72 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) (local $6 i32) (local $7 i32) + i32.const 1 + local.get $0 + local.get $0 + f64.ne local.get $1 - call $~lib/number/isNaN - if (result i32) - i32.const 1 - else - local.get $0 - call $~lib/number/isNaN - end + local.get $1 + f64.ne + select if local.get $1 local.get $0 @@ -2844,7 +2834,7 @@ i32.and select ) - (func $std/math/test_atan2 (; 76 ;) (type $FUNCSIG$idddd) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $std/math/test_atan2 (; 73 ;) (type $FUNCSIG$idddd) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.atan2 @@ -2862,18 +2852,18 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan2 (; 77 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 74 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) + i32.const 1 + local.get $0 + local.get $0 + f32.ne local.get $1 - call $~lib/number/isNaN - if (result i32) - i32.const 1 - else - local.get $0 - call $~lib/number/isNaN - end + local.get $1 + f32.ne + select if local.get $1 local.get $0 @@ -3058,7 +3048,7 @@ i32.and select ) - (func $std/math/test_atan2f (; 78 ;) (type $FUNCSIG$iffff) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (func $std/math/test_atan2f (; 75 ;) (type $FUNCSIG$iffff) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.atan2 @@ -3066,7 +3056,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.cbrt (; 79 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 76 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -3188,7 +3178,7 @@ f64.mul f64.add ) - (func $std/math/test_cbrt (; 80 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_cbrt (; 77 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.cbrt local.get $1 @@ -3204,7 +3194,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.cbrt (; 81 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 f64) (local $3 i32) @@ -3303,14 +3293,14 @@ f64.div f32.demote_f64 ) - (func $std/math/test_cbrtf (; 82 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_cbrtf (; 79 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.cbrt local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_ceil (; 83 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_ceil (; 80 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.ceil local.get $1 @@ -3326,14 +3316,14 @@ i32.const 0 end ) - (func $std/math/test_ceilf (; 84 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_ceilf (; 81 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.ceil local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/pio2_large_quot (; 85 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/math/pio2_large_quot (; 82 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i64) (local $2 i64) (local $3 i64) @@ -3625,7 +3615,7 @@ i64.sub i32.wrap_i64 ) - (func $~lib/math/NativeMath.cos (; 86 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 83 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 f64) @@ -3965,7 +3955,7 @@ end local.get $0 ) - (func $std/math/test_cos (; 87 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_cos (; 84 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.cos local.get $1 @@ -3981,7 +3971,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.cos (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -4251,14 +4241,14 @@ end local.get $0 ) - (func $std/math/test_cosf (; 89 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_cosf (; 86 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.cos local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.expm1 (; 90 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 87 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -4285,7 +4275,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -4530,7 +4521,7 @@ local.get $4 f64.mul ) - (func $~lib/math/NativeMath.exp (; 91 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 88 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -4555,7 +4546,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -4682,7 +4674,7 @@ local.get $1 call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 92 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 89 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) local.get $0 @@ -4746,7 +4738,7 @@ f64.const 2247116418577894884661631e283 f64.mul ) - (func $std/math/test_cosh (; 93 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_cosh (; 90 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.cosh local.get $1 @@ -4762,7 +4754,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.expm1 (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -5014,7 +5006,7 @@ local.get $4 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 92 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -5142,7 +5134,7 @@ local.get $1 call $~lib/math/NativeMathf.scalbn ) - (func $~lib/math/NativeMathf.cosh (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) local.get $0 i32.reinterpret_f32 @@ -5201,14 +5193,14 @@ f32.const 1661534994731144841129758e11 f32.mul ) - (func $std/math/test_coshf (; 97 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_coshf (; 94 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.cosh local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_exp (; 98 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_exp (; 95 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.exp local.get $1 @@ -5224,14 +5216,14 @@ i32.const 0 end ) - (func $std/math/test_expf (; 99 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_expf (; 96 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.exp local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_expm1 (; 100 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_expm1 (; 97 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.expm1 local.get $1 @@ -5247,14 +5239,14 @@ i32.const 0 end ) - (func $std/math/test_expm1f (; 101 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_expm1f (; 98 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.expm1 local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_floor (; 102 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_floor (; 99 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.floor local.get $1 @@ -5270,14 +5262,14 @@ i32.const 0 end ) - (func $std/math/test_floorf (; 103 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_floorf (; 100 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.floor local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.hypot (; 104 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 101 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 f64) (local $4 i64) @@ -5448,7 +5440,7 @@ f64.sqrt f64.mul ) - (func $std/math/test_hypot (; 105 ;) (type $FUNCSIG$idddd) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $std/math/test_hypot (; 102 ;) (type $FUNCSIG$idddd) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.hypot @@ -5456,7 +5448,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMathf.hypot (; 106 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 103 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -5561,7 +5553,7 @@ f32.sqrt f32.mul ) - (func $std/math/test_hypotf (; 107 ;) (type $FUNCSIG$iffff) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (func $std/math/test_hypotf (; 104 ;) (type $FUNCSIG$iffff) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.hypot @@ -5569,7 +5561,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_log (; 108 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_log (; 105 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log local.get $1 @@ -5585,14 +5577,14 @@ i32.const 0 end ) - (func $std/math/test_logf (; 109 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_logf (; 106 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.log local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.log10 (; 110 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 107 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -5796,7 +5788,7 @@ local.get $1 f64.add ) - (func $std/math/test_log10 (; 111 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_log10 (; 108 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log10 local.get $1 @@ -5812,7 +5804,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log10 (; 112 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 109 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -5970,14 +5962,14 @@ f32.mul f32.add ) - (func $std/math/test_log10f (; 113 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_log10f (; 110 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.log10 local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_log1p (; 114 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_log1p (; 111 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log1p local.get $1 @@ -5993,14 +5985,14 @@ i32.const 0 end ) - (func $std/math/test_log1pf (; 115 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_log1pf (; 112 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.log1p local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.log2 (; 116 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 113 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -6197,7 +6189,7 @@ local.get $1 f64.add ) - (func $std/math/test_log2 (; 117 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_log2 (; 114 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log2 local.get $1 @@ -6213,7 +6205,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log2 (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -6363,14 +6355,14 @@ f32.convert_i32_s f32.add ) - (func $std/math/test_log2f (; 119 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_log2f (; 116 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.log2 local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_max (; 120 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_max (; 117 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 f64.max @@ -6388,7 +6380,7 @@ i32.const 0 end ) - (func $std/math/test_maxf (; 121 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_maxf (; 118 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 f32.max @@ -6396,7 +6388,7 @@ f32.const 0 call $std/math/check ) - (func $std/math/test_min (; 122 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_min (; 119 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 f64.min @@ -6414,7 +6406,7 @@ i32.const 0 end ) - (func $std/math/test_minf (; 123 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_minf (; 120 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 f32.min @@ -6422,7 +6414,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.mod (; 124 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 121 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -6467,7 +6459,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne end if local.get $0 @@ -6494,7 +6487,8 @@ return end local.get $4 - i64.eqz + i64.const 0 + i64.eq if (result i64) local.get $2 i64.const 0 @@ -6518,7 +6512,8 @@ end local.set $2 local.get $5 - i64.eqz + i64.const 0 + i64.eq if (result i64) local.get $3 i64.const 0 @@ -6625,7 +6620,7 @@ local.get $0 f64.mul ) - (func $std/math/test_mod (; 125 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_mod (; 122 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.mod @@ -6643,7 +6638,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.mod (; 126 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 123 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6686,7 +6681,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne end if local.get $0 @@ -6834,7 +6830,7 @@ local.get $0 f32.mul ) - (func $std/math/test_modf (; 127 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_modf (; 124 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.mod @@ -6842,7 +6838,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.pow (; 128 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 125 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -7750,7 +7746,7 @@ f64.const 1e-300 f64.mul ) - (func $std/math/test_pow (; 129 ;) (type $FUNCSIG$idddd) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $std/math/test_pow (; 126 ;) (type $FUNCSIG$idddd) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.pow @@ -7768,7 +7764,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.pow (; 130 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 127 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) (local $4 i32) @@ -8554,7 +8550,7 @@ f32.const 1.0000000031710769e-30 f32.mul ) - (func $std/math/test_powf (; 131 ;) (type $FUNCSIG$iffff) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (func $std/math/test_powf (; 128 ;) (type $FUNCSIG$iffff) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.pow @@ -8562,7 +8558,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/murmurHash3 (; 132 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 129 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 i64.const 33 i64.shr_u @@ -8583,7 +8579,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 133 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -8615,7 +8611,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 134 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 131 ;) (type $FUNCSIG$vj) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -8659,7 +8655,7 @@ unreachable end ) - (func $~lib/math/NativeMath.random (; 135 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 132 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -8703,7 +8699,7 @@ f64.const 1 f64.sub ) - (func $~lib/math/NativeMathf.random (; 136 ;) (type $FUNCSIG$f) (result f32) + (func $~lib/math/NativeMathf.random (; 133 ;) (type $FUNCSIG$f) (result f32) (local $0 i32) (local $1 i32) global.get $~lib/math/random_seeded @@ -8749,7 +8745,7 @@ f32.const 1 f32.sub ) - (func $std/math/test_round (; 137 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_round (; 134 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.const 0.5 f64.add @@ -8760,7 +8756,7 @@ f64.const 0 call $std/math/check ) - (func $std/math/test_roundf (; 138 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_roundf (; 135 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.const 0.5 f32.add @@ -8771,7 +8767,7 @@ f32.const 0 call $std/math/check ) - (func $std/math/test_sign (; 139 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_sign (; 136 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 f64) local.get $0 local.set $2 @@ -8797,7 +8793,7 @@ i32.const 0 end ) - (func $std/math/test_signf (; 140 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_signf (; 137 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) f32.const 1 local.get $0 f32.copysign @@ -8811,7 +8807,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.rem (; 141 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 138 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -8840,6 +8836,10 @@ i64.shr_u i32.wrap_i64 i32.const 1 + local.get $1 + local.get $1 + f64.ne + i32.const 1 local.get $3 i64.const 2047 i64.eq @@ -8849,12 +8849,7 @@ i64.const 0 i64.eq select - if (result i32) - i32.const 1 - else - local.get $1 - call $~lib/number/isNaN - end + select if local.get $0 local.get $1 @@ -8874,7 +8869,8 @@ return end local.get $3 - i64.eqz + i64.const 0 + i64.eq if (result i64) local.get $2 i64.const 0 @@ -8898,7 +8894,8 @@ end local.set $2 local.get $6 - i64.eqz + i64.const 0 + i64.eq if (result i64) local.get $4 i64.const 0 @@ -9067,7 +9064,7 @@ end local.get $0 ) - (func $std/math/test_rem (; 142 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_rem (; 139 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.rem @@ -9075,7 +9072,7 @@ f64.const 0 call $std/math/check ) - (func $~lib/math/NativeMathf.rem (; 143 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 140 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9102,6 +9099,10 @@ local.get $2 i32.const 31 i32.shr_u + i32.const 1 + local.get $1 + local.get $1 + f32.ne local.get $3 i32.const 255 i32.eq @@ -9110,12 +9111,7 @@ i32.const 1 i32.shl select - if (result i32) - i32.const 1 - else - local.get $1 - call $~lib/number/isNaN - end + select if local.get $0 local.get $1 @@ -9320,7 +9316,7 @@ end local.get $0 ) - (func $std/math/test_remf (; 144 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_remf (; 141 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.rem @@ -9328,7 +9324,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.sin (; 145 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 142 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 f64) @@ -9650,7 +9646,7 @@ end local.get $0 ) - (func $std/math/test_sin (; 146 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sin (; 143 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.sin local.get $1 @@ -9666,7 +9662,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sin (; 147 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 144 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -9937,14 +9933,14 @@ end local.get $0 ) - (func $std/math/test_sinf (; 148 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sinf (; 145 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.sin local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.sinh (; 149 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 146 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -10021,7 +10017,7 @@ f64.mul f64.mul ) - (func $std/math/test_sinh (; 150 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sinh (; 147 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.sinh local.get $1 @@ -10037,7 +10033,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sinh (; 151 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 148 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -10109,14 +10105,14 @@ f32.mul f32.mul ) - (func $std/math/test_sinhf (; 152 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sinhf (; 149 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.sinh local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_sqrt (; 153 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sqrt (; 150 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 f64.sqrt local.get $1 @@ -10132,14 +10128,14 @@ i32.const 0 end ) - (func $std/math/test_sqrtf (; 154 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sqrtf (; 151 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 f32.sqrt local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/tan_kern (; 155 ;) (type $FUNCSIG$dddi) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) + (func $~lib/math/tan_kern (; 152 ;) (type $FUNCSIG$dddi) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 f64) (local $4 f64) (local $5 f64) @@ -10321,7 +10317,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.tan (; 156 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 153 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -10500,7 +10496,7 @@ i32.sub call $~lib/math/tan_kern ) - (func $std/math/test_tan (; 157 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_tan (; 154 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.tan local.get $1 @@ -10516,7 +10512,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tan (; 158 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 155 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -10771,14 +10767,14 @@ local.get $1 f32.demote_f64 ) - (func $std/math/test_tanf (; 159 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_tanf (; 156 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.tan local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.tanh (; 160 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 157 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -10857,7 +10853,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_tanh (; 161 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_tanh (; 158 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.tanh local.get $1 @@ -10873,7 +10869,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tanh (; 162 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 159 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -10947,14 +10943,14 @@ local.get $0 f32.copysign ) - (func $std/math/test_tanhf (; 163 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_tanhf (; 160 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.tanh local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_trunc (; 164 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_trunc (; 161 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.trunc local.get $1 @@ -10970,14 +10966,14 @@ i32.const 0 end ) - (func $std/math/test_truncf (; 165 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_truncf (; 162 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.trunc local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.sincos (; 166 ;) (type $FUNCSIG$vd) (param $0 f64) + (func $~lib/math/NativeMath.sincos (; 163 ;) (type $FUNCSIG$vd) (param $0 f64) (local $1 f64) (local $2 f64) (local $3 f64) @@ -11375,7 +11371,7 @@ local.get $1 global.set $~lib/math/NativeMath.sincos_cos ) - (func $std/math/test_sincos (; 167 ;) (type $FUNCSIG$vjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) + (func $std/math/test_sincos (; 164 ;) (type $FUNCSIG$vjjjjj) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (local $5 f64) (local $6 f64) local.get $3 @@ -11401,7 +11397,7 @@ drop end ) - (func $~lib/math/dtoi32 (; 168 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/math/dtoi32 (; 165 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 f64.const 4294967296 local.get $0 @@ -11413,12 +11409,16 @@ i64.trunc_f64_s i32.wrap_i64 ) - (func $~lib/math/NativeMath.imul (; 169 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 166 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) local.get $0 local.get $1 f64.add - call $~lib/number/isFinite - i32.eqz + local.tee $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne if f64.const 0 return @@ -11430,10 +11430,12 @@ i32.mul f64.convert_i32_s ) - (func $~lib/math/NativeMath.clz32 (; 170 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 167 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 - call $~lib/number/isFinite - i32.eqz + local.get $0 + f64.sub + f64.const 0 + f64.ne if f64.const 32 return @@ -11443,7 +11445,7 @@ i32.clz f64.convert_i32_s ) - (func $~lib/math/ipow64 (; 171 ;) (type $FUNCSIG$jji) (param $0 i64) (param $1 i32) (result i64) + (func $~lib/math/ipow64 (; 168 ;) (type $FUNCSIG$jji) (param $0 i64) (param $1 i32) (result i64) (local $2 i64) i64.const 1 local.set $2 @@ -11475,7 +11477,7 @@ end local.get $2 ) - (func $~lib/math/ipow32f (; 172 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/ipow32f (; 169 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) local.get $1 @@ -11521,7 +11523,7 @@ end local.get $2 ) - (func $~lib/math/ipow64f (; 173 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/ipow64f (; 170 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) local.get $1 @@ -11567,7 +11569,7 @@ end local.get $2 ) - (func $start:std/math (; 174 ;) (type $FUNCSIG$v) + (func $start:std/math (; 171 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) (local $2 f32) @@ -45796,8 +45798,9 @@ f32.const nan:0x400000 i32.const 1 call $~lib/math/ipow32f - call $~lib/number/isNaN - i32.eqz + local.tee $2 + local.get $2 + f32.eq if i32.const 0 i32.const 24 @@ -45809,8 +45812,9 @@ f32.const nan:0x400000 i32.const -1 call $~lib/math/ipow32f - call $~lib/number/isNaN - i32.eqz + local.tee $2 + local.get $2 + f32.eq if i32.const 0 i32.const 24 @@ -45822,8 +45826,9 @@ f32.const nan:0x400000 i32.const 2 call $~lib/math/ipow32f - call $~lib/number/isNaN - i32.eqz + local.tee $2 + local.get $2 + f32.eq if i32.const 0 i32.const 24 @@ -46004,8 +46009,9 @@ f64.const nan:0x8000000000000 i32.const 1 call $~lib/math/ipow64f - call $~lib/number/isNaN - i32.eqz + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 24 @@ -46017,8 +46023,9 @@ f64.const nan:0x8000000000000 i32.const -1 call $~lib/math/ipow64f - call $~lib/number/isNaN - i32.eqz + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 24 @@ -46030,8 +46037,9 @@ f64.const nan:0x8000000000000 i32.const 2 call $~lib/math/ipow64f - call $~lib/number/isNaN - i32.eqz + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 24 @@ -46184,10 +46192,10 @@ unreachable end ) - (func $start (; 175 ;) (type $FUNCSIG$v) + (func $start (; 172 ;) (type $FUNCSIG$v) call $start:std/math ) - (func $null (; 176 ;) (type $FUNCSIG$v) + (func $null (; 173 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 8942edf47f..00c5ddb364 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -1,12 +1,12 @@ (module (type $FUNCSIG$idddi (func (param f64 f64 f64 i32) (result i32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$dddd (func (param f64 f64 f64) (result f64))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$ddi (func (param f64 i32) (result f64))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ifffi (func (param f32 f32 f32 i32) (result i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$ffff (func (param f32 f32 f32) (result f32))) + (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$ffi (func (param f32 i32) (result f32))) (type $FUNCSIG$ididdi (func (param f64 i32 f64 f64 i32) (result i32))) (type $FUNCSIG$ififfi (func (param f32 i32 f32 f32 i32) (result i32))) @@ -120,19 +120,7 @@ (global $~lib/builtins/f32.MIN_VALUE f32 (f32.const 1.401298464324817e-45)) (export "memory" (memory $0)) (start $start) - (func $~lib/number/isNaN (; 32 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/number/isFinite (; 33 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $std/math/eulp (; 34 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $std/math/eulp (; 32 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i64) (local $2 i32) local.get $0 @@ -159,7 +147,7 @@ i32.const 52 i32.sub ) - (func $~lib/math/NativeMath.scalbn (; 35 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 33 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) (local $4 i32) @@ -250,13 +238,15 @@ f64.reinterpret_i64 f64.mul ) - (func $std/math/ulperr (; 36 ;) (type $FUNCSIG$dddd) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) + (func $std/math/ulperr (; 34 ;) (type $FUNCSIG$dddd) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) (local $3 f64) local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if (result i32) local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne else i32.const 0 end @@ -303,7 +293,10 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if f64.const 8988465674311579538646525e283 @@ -326,7 +319,7 @@ local.get $2 f64.add ) - (func $std/math/check (; 37 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/check (; 35 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.get $1 @@ -336,10 +329,12 @@ return end local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne return end local.get $0 @@ -357,19 +352,7 @@ end i32.const 1 ) - (func $~lib/number/isNaN (; 38 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/number/isFinite (; 39 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.sub - f32.const 0 - f32.eq - ) - (func $std/math/eulpf (; 40 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $std/math/eulpf (; 36 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -395,7 +378,7 @@ i32.const 23 i32.sub ) - (func $~lib/math/NativeMathf.scalbn (; 41 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 37 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -485,13 +468,15 @@ f32.reinterpret_i32 f32.mul ) - (func $std/math/ulperrf (; 42 ;) (type $FUNCSIG$ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) + (func $std/math/ulperrf (; 38 ;) (type $FUNCSIG$ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) (local $3 f32) local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne if (result i32) local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne else i32.const 0 end @@ -536,7 +521,10 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f32.sub + f32.const 0 + f32.eq i32.eqz if f32.const 1701411834604692317316873e14 @@ -559,7 +547,7 @@ local.get $2 f32.add ) - (func $std/math/check (; 43 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/check (; 39 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.get $1 @@ -569,10 +557,12 @@ return end local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne return end local.get $0 @@ -590,7 +580,7 @@ end i32.const 1 ) - (func $std/math/test_scalbn (; 44 ;) (type $FUNCSIG$ididdi) (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_scalbn (; 40 ;) (type $FUNCSIG$ididdi) (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.scalbn @@ -599,7 +589,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_scalbnf (; 45 ;) (type $FUNCSIG$ififfi) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_scalbnf (; 41 ;) (type $FUNCSIG$ififfi) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.scalbn @@ -608,7 +598,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_abs (; 46 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_abs (; 42 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -635,7 +625,7 @@ i32.const 0 end ) - (func $std/math/test_absf (; 47 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_absf (; 43 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -646,7 +636,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/R (; 48 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/R (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) local.get $0 @@ -695,7 +685,7 @@ local.get $2 f64.div ) - (func $~lib/math/NativeMath.acos (; 49 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -847,7 +837,7 @@ f64.add f64.mul ) - (func $std/math/test_acos (; 50 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acos (; 46 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.acos local.get $1 @@ -871,7 +861,7 @@ i32.const 0 end ) - (func $~lib/math/Rf (; 51 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 47 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) local.get $0 @@ -896,7 +886,7 @@ local.get $2 f32.div ) - (func $~lib/math/NativeMathf.acos (; 52 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 48 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -1036,7 +1026,7 @@ f32.add f32.mul ) - (func $std/math/test_acosf (; 53 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_acosf (; 49 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.acos local.get $1 @@ -1044,7 +1034,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log1p (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 50 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -1286,7 +1276,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.log (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 51 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -1495,7 +1485,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.acosh (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 52 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) local.get $0 i64.reinterpret_f64 @@ -1555,7 +1545,7 @@ f64.const 0.6931471805599453 f64.add ) - (func $std/math/test_acosh (; 57 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acosh (; 53 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.acosh local.get $1 @@ -1579,7 +1569,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log1p (; 58 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 54 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -1788,7 +1778,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.log (; 59 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 55 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -1956,7 +1946,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.acosh (; 60 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 56 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -2012,7 +2002,7 @@ f32.const 0.6931471824645996 f32.add ) - (func $std/math/test_acoshf (; 61 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_acoshf (; 57 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.acosh local.get $1 @@ -2020,7 +2010,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.asin (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2179,7 +2169,7 @@ end local.get $0 ) - (func $std/math/test_asin (; 63 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asin (; 59 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.asin local.get $1 @@ -2203,7 +2193,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.asin (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 60 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -2295,7 +2285,7 @@ local.get $1 f32.copysign ) - (func $std/math/test_asinf (; 65 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_asinf (; 61 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.asin local.get $1 @@ -2303,7 +2293,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.asinh (; 66 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 f64) @@ -2379,7 +2369,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_asinh (; 67 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asinh (; 63 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.asinh local.get $1 @@ -2403,7 +2393,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.asinh (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) local.get $0 @@ -2472,7 +2462,7 @@ local.get $0 f32.copysign ) - (func $std/math/test_asinhf (; 69 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_asinhf (; 65 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.asinh local.get $1 @@ -2480,7 +2470,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.atan (; 70 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 66 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 f64) @@ -2507,7 +2497,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -2737,7 +2728,7 @@ local.get $2 f64.copysign ) - (func $std/math/test_atan (; 71 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atan (; 67 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.atan local.get $1 @@ -2761,7 +2752,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -2785,7 +2776,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne if local.get $0 return @@ -2990,7 +2982,7 @@ local.get $2 f32.copysign ) - (func $std/math/test_atanf (; 73 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_atanf (; 69 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.atan local.get $1 @@ -2998,7 +2990,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.atanh (; 74 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 70 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 f64) @@ -3057,7 +3049,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_atanh (; 75 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atanh (; 71 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.atanh local.get $1 @@ -3081,7 +3073,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atanh (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) local.get $0 @@ -3131,7 +3123,7 @@ local.get $0 f32.copysign ) - (func $std/math/test_atanhf (; 77 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_atanhf (; 73 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.atanh local.get $1 @@ -3139,7 +3131,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.atan2 (; 78 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 74 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -3150,12 +3142,14 @@ (local $9 f64) (local $10 f64) local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne if (result i32) i32.const 1 else local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne end if local.get $1 @@ -3438,7 +3432,7 @@ end unreachable ) - (func $std/math/test_atan2 (; 79 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_atan2 (; 75 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.atan2 @@ -3464,7 +3458,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan2 (; 80 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 76 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3472,12 +3466,14 @@ (local $6 f32) (local $7 f32) local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne if (result i32) i32.const 1 else local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne end if local.get $1 @@ -3734,7 +3730,7 @@ end unreachable ) - (func $std/math/test_atan2f (; 81 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_atan2f (; 77 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.atan2 @@ -3743,7 +3739,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.cbrt (; 82 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 78 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -3887,7 +3883,7 @@ local.set $3 local.get $3 ) - (func $std/math/test_cbrt (; 83 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cbrt (; 79 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.cbrt local.get $1 @@ -3911,7 +3907,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.cbrt (; 84 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 80 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -4027,7 +4023,7 @@ local.get $3 f32.demote_f64 ) - (func $std/math/test_cbrtf (; 85 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_cbrtf (; 81 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.cbrt local.get $1 @@ -4035,7 +4031,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_ceil (; 86 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_ceil (; 82 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -4062,7 +4058,7 @@ i32.const 0 end ) - (func $std/math/test_ceilf (; 87 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_ceilf (; 83 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -4073,7 +4069,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/pio2_large_quot (; 88 ;) (type $FUNCSIG$idj) (param $0 f64) (param $1 i64) (result i32) + (func $~lib/math/pio2_large_quot (; 84 ;) (type $FUNCSIG$idj) (param $0 f64) (param $1 i64) (result i32) (local $2 i32) (local $3 i64) (local $4 i64) @@ -4475,7 +4471,7 @@ local.get $31 i32.wrap_i64 ) - (func $~lib/math/NativeMath.cos (; 89 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 85 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -4993,7 +4989,7 @@ local.get $0 end ) - (func $std/math/test_cos (; 90 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cos (; 86 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.cos local.get $1 @@ -5017,7 +5013,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.cos (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 87 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -5635,7 +5631,7 @@ local.get $27 end ) - (func $std/math/test_cosf (; 92 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_cosf (; 88 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.cos local.get $1 @@ -5643,7 +5639,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.expm1 (; 93 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 89 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -5681,7 +5677,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -5955,7 +5952,7 @@ local.get $14 f64.mul ) - (func $~lib/math/NativeMath.exp (; 94 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 90 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) @@ -5984,7 +5981,8 @@ i32.ge_u if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if local.get $0 return @@ -6120,7 +6118,7 @@ local.get $5 call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 95 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 91 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -6209,7 +6207,7 @@ local.set $3 local.get $3 ) - (func $std/math/test_cosh (; 96 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cosh (; 92 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.cosh local.get $1 @@ -6233,7 +6231,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.expm1 (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6526,7 +6524,7 @@ local.get $13 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -6670,7 +6668,7 @@ local.get $5 call $~lib/math/NativeMathf.scalbn ) - (func $~lib/math/NativeMathf.cosh (; 99 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -6747,7 +6745,7 @@ local.get $3 f32.mul ) - (func $std/math/test_coshf (; 100 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_coshf (; 96 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.cosh local.get $1 @@ -6755,7 +6753,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_exp (; 101 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_exp (; 97 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.exp local.get $1 @@ -6779,7 +6777,7 @@ i32.const 0 end ) - (func $std/math/test_expf (; 102 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expf (; 98 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.exp local.get $1 @@ -6787,7 +6785,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_expm1 (; 103 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_expm1 (; 99 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.expm1 local.get $1 @@ -6811,7 +6809,7 @@ i32.const 0 end ) - (func $std/math/test_expm1f (; 104 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expm1f (; 100 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.expm1 local.get $1 @@ -6819,7 +6817,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_floor (; 105 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_floor (; 101 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -6846,7 +6844,7 @@ i32.const 0 end ) - (func $std/math/test_floorf (; 106 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_floorf (; 102 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -6857,7 +6855,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.hypot (; 107 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 103 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -7052,7 +7050,7 @@ f64.sqrt f64.mul ) - (func $std/math/test_hypot (; 108 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_hypot (; 104 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.hypot @@ -7061,7 +7059,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMathf.hypot (; 109 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 105 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7178,7 +7176,7 @@ f32.sqrt f32.mul ) - (func $std/math/test_hypotf (; 110 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_hypotf (; 106 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.hypot @@ -7187,7 +7185,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_log (; 111 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log (; 107 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log local.get $1 @@ -7211,7 +7209,7 @@ i32.const 0 end ) - (func $std/math/test_logf (; 112 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_logf (; 108 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log local.get $1 @@ -7219,7 +7217,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log10 (; 113 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 109 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -7479,7 +7477,7 @@ local.get $8 f64.add ) - (func $std/math/test_log10 (; 114 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log10 (; 110 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log10 local.get $1 @@ -7503,7 +7501,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log10 (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 111 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7703,7 +7701,7 @@ f32.mul f32.add ) - (func $std/math/test_log10f (; 116 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log10f (; 112 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log10 local.get $1 @@ -7711,7 +7709,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_log1p (; 117 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log1p (; 113 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log1p local.get $1 @@ -7735,7 +7733,7 @@ i32.const 0 end ) - (func $std/math/test_log1pf (; 118 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log1pf (; 114 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log1p local.get $1 @@ -7743,7 +7741,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log2 (; 119 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 115 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -7996,7 +7994,7 @@ local.get $14 f64.add ) - (func $std/math/test_log2 (; 120 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log2 (; 116 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log2 local.get $1 @@ -8020,7 +8018,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log2 (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -8215,7 +8213,7 @@ local.get $14 f32.add ) - (func $std/math/test_log2f (; 122 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log2f (; 118 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log2 local.get $1 @@ -8223,7 +8221,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_max (; 123 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_max (; 119 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 f64) (local $6 f64) local.get $0 @@ -8255,7 +8253,7 @@ i32.const 0 end ) - (func $std/math/test_maxf (; 124 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_maxf (; 120 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (local $5 f32) (local $6 f32) local.get $0 @@ -8270,7 +8268,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_min (; 125 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_min (; 121 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 f64) (local $6 f64) local.get $0 @@ -8302,7 +8300,7 @@ i32.const 0 end ) - (func $std/math/test_minf (; 126 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_minf (; 122 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (local $5 f32) (local $6 f32) local.get $0 @@ -8317,7 +8315,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.mod (; 127 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 123 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -8367,7 +8365,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne end if local.get $0 @@ -8400,7 +8399,9 @@ return end local.get $4 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $4 local.get $2 @@ -8432,7 +8433,9 @@ local.set $2 end local.get $5 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $5 local.get $3 @@ -8566,7 +8569,7 @@ local.get $2 f64.reinterpret_i64 ) - (func $std/math/test_mod (; 128 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_mod (; 124 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.mod @@ -8592,7 +8595,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.mod (; 129 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 125 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8642,7 +8645,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne end if local.get $0 @@ -8839,7 +8843,7 @@ local.get $2 f32.reinterpret_i32 ) - (func $std/math/test_modf (; 130 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_modf (; 126 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.mod @@ -8848,7 +8852,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.pow (; 131 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 127 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -9928,7 +9932,7 @@ local.get $16 f64.mul ) - (func $std/math/test_pow (; 132 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_pow (; 128 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.pow @@ -9954,7 +9958,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.pow (; 133 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 129 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10888,7 +10892,7 @@ local.get $11 f32.mul ) - (func $std/math/test_powf (; 134 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_powf (; 130 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.pow @@ -10897,7 +10901,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/murmurHash3 (; 135 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 131 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -10926,7 +10930,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 136 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 132 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -10961,7 +10965,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 137 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 133 ;) (type $FUNCSIG$vj) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -11013,7 +11017,7 @@ unreachable end ) - (func $~lib/math/NativeMath.random (; 138 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 134 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -11068,7 +11072,7 @@ f64.const 1 f64.sub ) - (func $~lib/math/NativeMathf.random (; 139 ;) (type $FUNCSIG$f) (result f32) + (func $~lib/math/NativeMathf.random (; 135 ;) (type $FUNCSIG$f) (result f32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11123,7 +11127,7 @@ f32.const 1 f32.sub ) - (func $std/math/test_round (; 140 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_round (; 136 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -11138,7 +11142,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_roundf (; 141 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_roundf (; 137 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -11153,7 +11157,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_sign (; 142 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sign (; 138 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 @@ -11196,7 +11200,7 @@ i32.const 0 end ) - (func $std/math/test_signf (; 143 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_signf (; 139 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 @@ -11223,7 +11227,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.rem (; 144 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 140 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -11273,7 +11277,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne end if local.get $0 @@ -11297,7 +11302,9 @@ local.get $2 local.set $8 local.get $4 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $4 local.get $8 @@ -11329,7 +11336,9 @@ local.set $8 end local.get $5 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $5 local.get $3 @@ -11533,7 +11542,7 @@ local.get $0 end ) - (func $std/math/test_rem (; 145 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_rem (; 141 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.rem @@ -11542,7 +11551,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMathf.rem (; 146 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 142 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11592,7 +11601,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne end if local.get $0 @@ -11850,7 +11860,7 @@ local.get $0 end ) - (func $std/math/test_remf (; 147 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_remf (; 143 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.rem @@ -11859,7 +11869,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.sin (; 148 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 144 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -12388,7 +12398,7 @@ local.get $0 end ) - (func $std/math/test_sin (; 149 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sin (; 145 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.sin local.get $1 @@ -12412,7 +12422,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sin (; 150 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 146 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -13022,7 +13032,7 @@ local.get $27 end ) - (func $std/math/test_sinf (; 151 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sinf (; 147 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.sin local.get $1 @@ -13030,7 +13040,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.sinh (; 152 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 148 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -13128,7 +13138,7 @@ local.set $4 local.get $4 ) - (func $std/math/test_sinh (; 153 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sinh (; 149 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.sinh local.get $1 @@ -13152,7 +13162,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sinh (; 154 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 150 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -13241,7 +13251,7 @@ local.set $3 local.get $3 ) - (func $std/math/test_sinhf (; 155 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sinhf (; 151 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.sinh local.get $1 @@ -13249,7 +13259,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_sqrt (; 156 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sqrt (; 152 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -13276,7 +13286,7 @@ i32.const 0 end ) - (func $std/math/test_sqrtf (; 157 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sqrtf (; 153 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -13287,7 +13297,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/tan_kern (; 158 ;) (type $FUNCSIG$dddi) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) + (func $~lib/math/tan_kern (; 154 ;) (type $FUNCSIG$dddi) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 f64) (local $4 f64) (local $5 f64) @@ -13500,7 +13510,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.tan (; 159 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 155 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -13812,7 +13822,7 @@ i32.sub call $~lib/math/tan_kern ) - (func $std/math/test_tan (; 160 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_tan (; 156 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.tan local.get $1 @@ -13836,7 +13846,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tan (; 161 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 157 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14487,7 +14497,7 @@ end f32.demote_f64 ) - (func $std/math/test_tanf (; 162 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_tanf (; 158 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.tan local.get $1 @@ -14495,7 +14505,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.tanh (; 163 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 159 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -14587,7 +14597,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_tanh (; 164 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_tanh (; 160 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.tanh local.get $1 @@ -14611,7 +14621,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tanh (; 165 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 161 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -14697,7 +14707,7 @@ local.get $0 f32.copysign ) - (func $std/math/test_tanhf (; 166 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_tanhf (; 162 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.tanh local.get $1 @@ -14705,7 +14715,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_trunc (; 167 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_trunc (; 163 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -14732,7 +14742,7 @@ i32.const 0 end ) - (func $std/math/test_truncf (; 168 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_truncf (; 164 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -14743,7 +14753,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.sincos (; 169 ;) (type $FUNCSIG$vd) (param $0 f64) + (func $~lib/math/NativeMath.sincos (; 165 ;) (type $FUNCSIG$vd) (param $0 f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -15362,7 +15372,7 @@ local.get $23 global.set $~lib/math/NativeMath.sincos_cos ) - (func $std/math/test_sincos (; 170 ;) (type $FUNCSIG$ijjjjji) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i32) (result i32) + (func $std/math/test_sincos (; 166 ;) (type $FUNCSIG$ijjjjji) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i32) (result i32) (local $6 f64) (local $7 f64) (local $8 f64) @@ -15400,7 +15410,7 @@ i32.const 0 end ) - (func $~lib/math/dtoi32 (; 171 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/math/dtoi32 (; 167 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i64) (local $3 i64) @@ -15471,11 +15481,16 @@ local.get $1 return ) - (func $~lib/math/NativeMath.imul (; 172 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 168 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (local $2 f64) local.get $0 local.get $1 f64.add - call $~lib/number/isFinite + local.tee $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq i32.eqz if f64.const 0 @@ -15488,9 +15503,12 @@ i32.mul f64.convert_i32_s ) - (func $~lib/math/NativeMath.clz32 (; 173 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 169 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if f64.const 32 @@ -15501,7 +15519,7 @@ i32.clz f64.convert_i32_s ) - (func $~lib/math/ipow64 (; 174 ;) (type $FUNCSIG$jji) (param $0 i64) (param $1 i32) (result i64) + (func $~lib/math/ipow64 (; 170 ;) (type $FUNCSIG$jji) (param $0 i64) (param $1 i32) (result i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -15722,7 +15740,7 @@ end local.get $2 ) - (func $~lib/math/ipow32f (; 175 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/ipow32f (; 171 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) (local $2 i32) (local $3 f32) local.get $1 @@ -15772,7 +15790,7 @@ local.get $3 end ) - (func $~lib/math/ipow64f (; 176 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/ipow64f (; 172 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) (local $2 i32) (local $3 f64) local.get $1 @@ -15822,7 +15840,7 @@ local.get $3 end ) - (func $start:std/math (; 177 ;) (type $FUNCSIG$v) + (func $start:std/math (; 173 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) (local $2 i64) @@ -54108,7 +54126,9 @@ f32.const nan:0x400000 i32.const 1 call $~lib/math/ipow32f - call $~lib/number/isNaN + local.tee $3 + local.get $3 + f32.ne i32.eqz if i32.const 0 @@ -54121,7 +54141,9 @@ f32.const nan:0x400000 i32.const -1 call $~lib/math/ipow32f - call $~lib/number/isNaN + local.tee $3 + local.get $3 + f32.ne i32.eqz if i32.const 0 @@ -54134,7 +54156,9 @@ f32.const nan:0x400000 i32.const 2 call $~lib/math/ipow32f - call $~lib/number/isNaN + local.tee $3 + local.get $3 + f32.ne i32.eqz if i32.const 0 @@ -54329,7 +54353,9 @@ f64.const nan:0x8000000000000 i32.const 1 call $~lib/math/ipow64f - call $~lib/number/isNaN + local.tee $1 + local.get $1 + f64.ne i32.eqz if i32.const 0 @@ -54342,7 +54368,9 @@ f64.const nan:0x8000000000000 i32.const -1 call $~lib/math/ipow64f - call $~lib/number/isNaN + local.tee $1 + local.get $1 + f64.ne i32.eqz if i32.const 0 @@ -54355,7 +54383,9 @@ f64.const nan:0x8000000000000 i32.const 2 call $~lib/math/ipow64f - call $~lib/number/isNaN + local.tee $1 + local.get $1 + f64.ne i32.eqz if i32.const 0 @@ -54520,9 +54550,9 @@ unreachable end ) - (func $start (; 178 ;) (type $FUNCSIG$v) + (func $start (; 174 ;) (type $FUNCSIG$v) call $start:std/math ) - (func $null (; 179 ;) (type $FUNCSIG$v) + (func $null (; 175 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/mod.optimized.wat b/tests/compiler/std/mod.optimized.wat index f7599e5cf1..2c2e9abf58 100644 --- a/tests/compiler/std/mod.optimized.wat +++ b/tests/compiler/std/mod.optimized.wat @@ -1,12 +1,10 @@ (module (type $FUNCSIG$iddd (func (param f64 f64 f64) (result i32))) (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ifff (func (param f32 f32 f32) (result i32))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$iff (func (param f32 f32) (result i32))) (type $FUNCSIG$v (func)) (import "mod" "mod" (func $std/mod/mod (param f64 f64) (result f64))) @@ -16,12 +14,7 @@ (export "memory" (memory $0)) (export "mod" (func $std/mod/mod)) (start $start) - (func $~lib/number/isNaN (; 2 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/math/NativeMath.mod (; 3 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 2 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -66,7 +59,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne end if local.get $0 @@ -93,7 +87,8 @@ return end local.get $4 - i64.eqz + i64.const 0 + i64.eq if (result i64) local.get $2 i64.const 0 @@ -117,7 +112,8 @@ end local.set $2 local.get $5 - i64.eqz + i64.const 0 + i64.eq if (result i64) local.get $3 i64.const 0 @@ -224,12 +220,14 @@ local.get $0 f64.mul ) - (func $std/mod/check (; 4 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/mod/check (; 3 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + local.get $1 local.get $1 - call $~lib/number/isNaN + f64.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne return end local.get $1 @@ -249,7 +247,7 @@ local.get $1 f64.eq ) - (func $std/mod/test_fmod (; 5 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/mod/test_fmod (; 4 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.mod @@ -265,12 +263,7 @@ i32.const 0 end ) - (func $~lib/number/isNaN (; 6 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/math/NativeMathf.mod (; 7 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 5 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -313,7 +306,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne end if local.get $0 @@ -461,12 +455,14 @@ local.get $0 f32.mul ) - (func $std/mod/check (; 8 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/mod/check (; 6 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + local.get $1 local.get $1 - call $~lib/number/isNaN + f32.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne return end local.get $1 @@ -486,14 +482,14 @@ local.get $1 f32.eq ) - (func $std/mod/test_fmodf (; 9 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/mod/test_fmodf (; 7 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.mod local.get $2 call $std/mod/check ) - (func $start:std/mod (; 10 ;) (type $FUNCSIG$v) + (func $start:std/mod (; 8 ;) (type $FUNCSIG$v) f64.const 3 f64.const 2 f64.const 1 @@ -2250,10 +2246,10 @@ unreachable end ) - (func $start (; 11 ;) (type $FUNCSIG$v) + (func $start (; 9 ;) (type $FUNCSIG$v) call $start:std/mod ) - (func $null (; 12 ;) (type $FUNCSIG$v) + (func $null (; 10 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/mod.untouched.wat b/tests/compiler/std/mod.untouched.wat index 779c3dedd6..4a675a1f87 100644 --- a/tests/compiler/std/mod.untouched.wat +++ b/tests/compiler/std/mod.untouched.wat @@ -1,12 +1,10 @@ (module (type $FUNCSIG$iddd (func (param f64 f64 f64) (result i32))) (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ifff (func (param f32 f32 f32) (result i32))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$iff (func (param f32 f32) (result i32))) (type $FUNCSIG$v (func)) (import "mod" "mod" (func $std/mod/mod (param f64 f64) (result f64))) @@ -19,12 +17,7 @@ (export "memory" (memory $0)) (export "mod" (func $std/mod/mod)) (start $start) - (func $~lib/number/isNaN (; 2 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/math/NativeMath.mod (; 3 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 2 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -74,7 +67,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne end if local.get $0 @@ -107,7 +101,9 @@ return end local.get $4 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $4 local.get $2 @@ -139,7 +135,9 @@ local.set $2 end local.get $5 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $5 local.get $3 @@ -273,12 +271,14 @@ local.get $2 f64.reinterpret_i64 ) - (func $std/mod/check (; 4 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $std/mod/check (; 3 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + local.get $1 local.get $1 - call $~lib/number/isNaN + f64.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne return end local.get $1 @@ -299,7 +299,7 @@ local.get $1 f64.eq ) - (func $std/mod/test_fmod (; 5 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/mod/test_fmod (; 4 ;) (type $FUNCSIG$iddd) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.mod @@ -321,12 +321,7 @@ i32.const 0 end ) - (func $~lib/number/isNaN (; 6 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/math/NativeMathf.mod (; 7 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 5 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -376,7 +371,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne end if local.get $0 @@ -573,12 +569,14 @@ local.get $2 f32.reinterpret_i32 ) - (func $std/mod/check (; 8 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $std/mod/check (; 6 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + local.get $1 local.get $1 - call $~lib/number/isNaN + f32.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne return end local.get $1 @@ -599,14 +597,14 @@ local.get $1 f32.eq ) - (func $std/mod/test_fmodf (; 9 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/mod/test_fmodf (; 7 ;) (type $FUNCSIG$ifff) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.mod local.get $2 call $std/mod/check ) - (func $start:std/mod (; 10 ;) (type $FUNCSIG$v) + (func $start:std/mod (; 8 ;) (type $FUNCSIG$v) f64.const 3 f64.const 2 f64.const 1 @@ -2363,9 +2361,9 @@ unreachable end ) - (func $start (; 11 ;) (type $FUNCSIG$v) + (func $start (; 9 ;) (type $FUNCSIG$v) call $start:std/mod ) - (func $null (; 12 ;) (type $FUNCSIG$v) + (func $null (; 10 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/object.optimized.wat b/tests/compiler/std/object.optimized.wat index 5ab114e677..85395d2262 100644 --- a/tests/compiler/std/object.optimized.wat +++ b/tests/compiler/std/object.optimized.wat @@ -1,9 +1,7 @@ (module (type $FUNCSIG$idd (func (param f64 f64) (result i32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$iff (func (param f32 f32) (result i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$v (func)) @@ -17,12 +15,7 @@ (data (i32.const 132) "\01\00\00\00\01") (export "memory" (memory $0)) (start $start) - (func $~lib/number/isNaN (; 1 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/object/Object.is (; 2 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/object/Object.is (; 1 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) local.get $0 local.get $1 f64.eq @@ -35,17 +28,14 @@ return end local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne i32.and ) - (func $~lib/number/isNaN (; 3 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/object/Object.is (; 4 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/object/Object.is (; 2 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) local.get $0 local.get $1 f32.eq @@ -58,17 +48,19 @@ return end local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne i32.and ) - (func $~lib/object/Object.is (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.eq ) - (func $~lib/object/Object.is (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -77,7 +69,7 @@ i32.ne i32.eq ) - (func $~lib/string/String#get:length (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -85,7 +77,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 6 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -165,7 +157,7 @@ end i32.const 0 ) - (func $~lib/string/String.__eq (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -197,12 +189,12 @@ end i32.const 0 ) - (func $~lib/object/Object.is<~lib/string/String> (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is<~lib/string/String> (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/string/String.__eq ) - (func $start:std/object (; 11 ;) (type $FUNCSIG$v) + (func $start:std/object (; 9 ;) (type $FUNCSIG$v) f64.const 0 f64.const 0 call $~lib/object/Object.is @@ -676,10 +668,10 @@ unreachable end ) - (func $start (; 12 ;) (type $FUNCSIG$v) + (func $start (; 10 ;) (type $FUNCSIG$v) call $start:std/object ) - (func $null (; 13 ;) (type $FUNCSIG$v) + (func $null (; 11 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/object.untouched.wat b/tests/compiler/std/object.untouched.wat index ab034be979..dffbfdbf70 100644 --- a/tests/compiler/std/object.untouched.wat +++ b/tests/compiler/std/object.untouched.wat @@ -1,9 +1,7 @@ (module (type $FUNCSIG$idd (func (param f64 f64) (result i32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$iff (func (param f32 f32) (result i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) @@ -21,12 +19,7 @@ (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (export "memory" (memory $0)) (start $start) - (func $~lib/number/isNaN (; 1 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/object/Object.is (; 2 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/object/Object.is (; 1 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) local.get $0 local.get $1 f64.eq @@ -39,18 +32,15 @@ return end local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne i32.and return ) - (func $~lib/number/isNaN (; 3 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/object/Object.is (; 4 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/object/Object.is (; 2 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) local.get $0 local.get $1 f32.eq @@ -63,18 +53,20 @@ return end local.get $0 - call $~lib/number/isNaN + local.get $0 + f32.ne local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne i32.and return ) - (func $~lib/object/Object.is (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.eq ) - (func $~lib/object/Object.is (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -83,13 +75,13 @@ i32.ne i32.eq ) - (func $~lib/rt/stub/__retain (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/stub/__retain (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 ) - (func $~lib/rt/stub/__release (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/stub/__release (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/string/String#get:length (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -97,7 +89,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 10 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 8 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -217,7 +209,7 @@ call $~lib/rt/stub/__release local.get $8 ) - (func $~lib/string/String.__eq (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -290,7 +282,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/object/Object.is<~lib/string/String> (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is<~lib/string/String> (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/stub/__retain @@ -308,12 +300,12 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/object/Object.is (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.eq ) - (func $~lib/object/Object.is<~lib/string/String | null> (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/object/Object.is<~lib/string/String | null> (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/stub/__retain @@ -331,7 +323,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $start:std/object (; 15 ;) (type $FUNCSIG$v) + (func $start:std/object (; 13 ;) (type $FUNCSIG$v) f64.const 0 f64.const 0 call $~lib/object/Object.is @@ -893,9 +885,9 @@ unreachable end ) - (func $start (; 16 ;) (type $FUNCSIG$v) + (func $start (; 14 ;) (type $FUNCSIG$v) call $start:std/object ) - (func $null (; 17 ;) (type $FUNCSIG$v) + (func $null (; 15 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index eecdda0154..46cbc320d2 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -9,9 +9,9 @@ (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$di (func (param i32) (result f64))) (type $FUNCSIG$ddi (func (param f64 i32) (result f64))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$ij (func (param i64) (result i32))) (type $FUNCSIG$viji (func (param i32 i64 i32))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $FUNCSIG$i (func (result i32))) @@ -4366,7 +4366,8 @@ i32.const -342 i32.lt_s local.get $2 - i64.eqz + i64.const 0 + i64.eq select if br $~lib/util/string/scientific|inlined.0 @@ -4684,12 +4685,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/number/isNaN (; 57 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/string/String#concat (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4750,7 +4746,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4769,7 +4765,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String.__ne (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4786,7 +4782,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String.__gt (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4855,7 +4851,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__lt (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4923,7 +4919,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__gte (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gte (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4940,7 +4936,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String.__lte (; 64 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String.__lte (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 120 call $~lib/rt/pure/__retain @@ -4957,7 +4953,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#repeat (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5018,7 +5014,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#replace (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#replace (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5137,7 +5133,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/rt/tlsf/reallocateBlock (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5259,7 +5255,7 @@ call $~lib/rt/rtrace/onfree local.get $3 ) - (func $~lib/rt/tlsf/__realloc (; 68 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -5295,7 +5291,7 @@ i32.const 16 i32.add ) - (func $~lib/string/String#replaceAll (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#replaceAll (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5608,7 +5604,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/string/String#slice (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#slice (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 call $~lib/string/String#get:length @@ -5683,7 +5679,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/rt/__allocArray (; 71 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/__allocArray (; 70 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5711,7 +5707,7 @@ i32.store offset=12 local.get $1 ) - (func $~lib/memory/memory.fill (; 72 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/memory/memory.fill (; 71 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 local.get $1 @@ -5920,7 +5916,7 @@ end end ) - (func $~lib/array/ensureSize (; 73 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/ensureSize (; 72 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5975,7 +5971,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#push (; 74 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#push (; 73 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $1 @@ -6004,7 +6000,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String#split (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6242,7 +6238,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array<~lib/string/String>#__get (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -6277,7 +6273,7 @@ end local.get $0 ) - (func $~lib/util/number/decimalCount32 (; 77 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 76 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 2 local.get $0 @@ -6325,7 +6321,7 @@ i32.lt_u select ) - (func $~lib/util/number/utoa_simple (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -6352,7 +6348,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/itoa32 (; 79 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 78 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6395,7 +6391,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/utoa32 (; 80 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 79 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -6419,7 +6415,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/decimalCount64 (; 81 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 80 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) i32.const 10 i32.const 11 i32.const 12 @@ -6472,7 +6468,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 82 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 81 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -6502,12 +6498,13 @@ br_if $continue|0 end ) - (func $~lib/util/number/utoa64 (; 83 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 82 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) local.get $0 - i64.eqz + i64.const 0 + i64.eq if i32.const 1192 call $~lib/rt/pure/__retain @@ -6546,13 +6543,14 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa64 (; 84 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 83 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) local.get $0 - i64.eqz + i64.const 0 + i64.eq if i32.const 1192 call $~lib/rt/pure/__retain @@ -6611,7 +6609,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/genDigits (; 85 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 84 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i64) @@ -7010,7 +7008,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -7257,7 +7255,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 87 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 86 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -7545,7 +7543,7 @@ local.get $10 i32.add ) - (func $~lib/string/String#substring (; 88 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 87 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 0 @@ -7622,7 +7620,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/dtoa (; 89 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 88 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -7640,7 +7638,8 @@ f64.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 4344 call $~lib/rt/pure/__retain @@ -7675,11 +7674,11 @@ local.get $1 call $~lib/rt/tlsf/__free ) - (func $start:std/string (; 90 ;) (type $FUNCSIG$v) + (func $start:std/string (; 89 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -7713,8 +7712,8 @@ (local $34 i32) (local $35 i32) (local $36 i32) - (local $37 i64) - (local $38 i32) + (local $37 i32) + (local $38 i64) (local $39 i32) (local $40 i32) (local $41 i32) @@ -7868,6 +7867,7 @@ (local $189 i32) (local $190 i32) (local $191 i32) + (local $192 i32) global.get $std/string/str i32.const 24 i32.ne @@ -7954,7 +7954,7 @@ global.set $~lib/argc i32.const 0 call $~lib/string/String.fromCharCode|trampoline - local.tee $5 + local.tee $6 i32.const 384 call $~lib/string/String.__eq i32.eqz @@ -7970,7 +7970,7 @@ global.set $~lib/argc i32.const 54 call $~lib/string/String.fromCharCode|trampoline - local.tee $6 + local.tee $7 i32.const 432 call $~lib/string/String.__eq i32.eqz @@ -7986,7 +7986,7 @@ global.set $~lib/argc i32.const 65590 call $~lib/string/String.fromCharCode|trampoline - local.tee $7 + local.tee $8 i32.const 432 call $~lib/string/String.__eq i32.eqz @@ -8001,7 +8001,7 @@ i32.const 55296 i32.const 57088 call $~lib/string/String.fromCharCode - local.tee $8 + local.tee $9 i32.const 456 call $~lib/string/String.__eq i32.eqz @@ -8015,7 +8015,7 @@ end i32.const 0 call $~lib/string/String.fromCodePoint - local.tee $9 + local.tee $10 i32.const 384 call $~lib/string/String.__eq i32.eqz @@ -8029,7 +8029,7 @@ end i32.const 54 call $~lib/string/String.fromCodePoint - local.tee $10 + local.tee $11 i32.const 432 call $~lib/string/String.__eq i32.eqz @@ -8043,7 +8043,7 @@ end i32.const 119558 call $~lib/string/String.fromCodePoint - local.tee $11 + local.tee $12 i32.const 528 call $~lib/string/String.__eq i32.eqz @@ -8101,7 +8101,7 @@ i32.const 0 i32.const 656 call $~lib/string/String#padStart - local.tee $12 + local.tee $13 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -8117,7 +8117,7 @@ i32.const 15 i32.const 656 call $~lib/string/String#padStart - local.tee $13 + local.tee $14 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -8133,7 +8133,7 @@ i32.const 3 i32.const 656 call $~lib/string/String#padStart - local.tee $14 + local.tee $15 i32.const 680 call $~lib/string/String.__eq i32.eqz @@ -8149,7 +8149,7 @@ i32.const 10 i32.const 120 call $~lib/string/String#padStart - local.tee $15 + local.tee $16 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -8165,7 +8165,7 @@ i32.const 100 i32.const 120 call $~lib/string/String#padStart - local.tee $16 + local.tee $17 i32.const 408 call $~lib/string/String.__eq i32.eqz @@ -8181,7 +8181,7 @@ i32.const 5 i32.const 656 call $~lib/string/String#padStart - local.tee $17 + local.tee $18 i32.const 728 call $~lib/string/String.__eq i32.eqz @@ -8197,7 +8197,7 @@ i32.const 6 i32.const 760 call $~lib/string/String#padStart - local.tee $18 + local.tee $19 i32.const 784 call $~lib/string/String.__eq i32.eqz @@ -8213,7 +8213,7 @@ i32.const 8 i32.const 760 call $~lib/string/String#padStart - local.tee $19 + local.tee $20 i32.const 816 call $~lib/string/String.__eq i32.eqz @@ -8229,7 +8229,7 @@ i32.const 0 i32.const 656 call $~lib/string/String#padEnd - local.tee $20 + local.tee $21 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -8245,7 +8245,7 @@ i32.const 15 i32.const 656 call $~lib/string/String#padEnd - local.tee $21 + local.tee $22 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -8261,7 +8261,7 @@ i32.const 3 i32.const 656 call $~lib/string/String#padEnd - local.tee $22 + local.tee $23 i32.const 680 call $~lib/string/String.__eq i32.eqz @@ -8277,7 +8277,7 @@ i32.const 10 i32.const 120 call $~lib/string/String#padEnd - local.tee $23 + local.tee $24 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -8293,7 +8293,7 @@ i32.const 100 i32.const 120 call $~lib/string/String#padEnd - local.tee $24 + local.tee $25 i32.const 408 call $~lib/string/String.__eq i32.eqz @@ -8309,7 +8309,7 @@ i32.const 5 i32.const 656 call $~lib/string/String#padEnd - local.tee $25 + local.tee $26 i32.const 848 call $~lib/string/String.__eq i32.eqz @@ -8325,7 +8325,7 @@ i32.const 6 i32.const 704 call $~lib/string/String#padEnd - local.tee $26 + local.tee $27 i32.const 880 call $~lib/string/String.__eq i32.eqz @@ -8341,7 +8341,7 @@ i32.const 8 i32.const 704 call $~lib/string/String#padEnd - local.tee $27 + local.tee $28 i32.const 912 call $~lib/string/String.__eq i32.eqz @@ -8638,7 +8638,7 @@ end i32.const 120 call $~lib/string/String#trimStart - local.tee $28 + local.tee $29 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -8652,7 +8652,7 @@ end i32.const 1064 call $~lib/string/String#trimStart - local.tee $29 + local.tee $30 i32.const 1064 call $~lib/string/String.__eq i32.eqz @@ -8666,7 +8666,7 @@ end i32.const 1088 call $~lib/string/String#trimStart - local.tee $30 + local.tee $31 i32.const 1128 call $~lib/string/String.__eq i32.eqz @@ -8680,7 +8680,7 @@ end i32.const 120 call $~lib/string/String#trimEnd - local.tee $31 + local.tee $32 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -8694,7 +8694,7 @@ end i32.const 1064 call $~lib/string/String#trimEnd - local.tee $32 + local.tee $33 i32.const 1064 call $~lib/string/String.__eq i32.eqz @@ -8708,7 +8708,7 @@ end i32.const 1088 call $~lib/string/String#trimEnd - local.tee $33 + local.tee $34 i32.const 1160 call $~lib/string/String.__eq i32.eqz @@ -8722,7 +8722,7 @@ end i32.const 120 call $~lib/string/String#trim - local.tee $34 + local.tee $35 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -8736,7 +8736,7 @@ end i32.const 1064 call $~lib/string/String#trim - local.tee $35 + local.tee $36 i32.const 1064 call $~lib/string/String.__eq i32.eqz @@ -8750,7 +8750,7 @@ end i32.const 1088 call $~lib/string/String#trim - local.tee $36 + local.tee $37 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -9192,8 +9192,9 @@ end i32.const 120 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9840,8 +9841,9 @@ end i32.const 4152 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9852,8 +9854,9 @@ end i32.const 4176 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9864,8 +9867,9 @@ end i32.const 4200 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9876,8 +9880,9 @@ end i32.const 4224 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9888,8 +9893,9 @@ end i32.const 4248 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9900,8 +9906,9 @@ end i32.const 4272 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9912,8 +9919,9 @@ end i32.const 4296 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9924,8 +9932,9 @@ end i32.const 4320 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9936,8 +9945,9 @@ end i32.const 4344 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9948,8 +9958,9 @@ end i32.const 4368 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9960,8 +9971,9 @@ end i32.const 4392 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9972,8 +9984,9 @@ end i32.const 4416 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9984,8 +9997,9 @@ end i32.const 4440 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -9996,8 +10010,9 @@ end i32.const 4472 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -10008,8 +10023,9 @@ end i32.const 4496 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -10020,8 +10036,9 @@ end i32.const 4520 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -10236,8 +10253,9 @@ end i32.const 5344 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -10248,8 +10266,9 @@ end i32.const 5368 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -10260,8 +10279,9 @@ end i32.const 5400 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -10309,16 +10329,16 @@ i32.const 6008 i32.const 6160 call $~lib/string/String.__concat - local.tee $38 + local.tee $39 i32.const 6312 call $~lib/string/String.__concat - local.tee $39 + local.tee $40 i32.const 6464 call $~lib/string/String.__concat - local.tee $40 + local.tee $41 i32.const 6616 call $~lib/string/String.__concat - local.tee $41 + local.tee $42 call $~lib/string/parseFloat f64.const 1797693134862315708145274e284 f64.ne @@ -10620,8 +10640,9 @@ end i32.const 9312 call $~lib/string/parseFloat - call $~lib/number/isNaN - i32.eqz + local.tee $3 + local.get $3 + f64.eq if i32.const 0 i32.const 72 @@ -11024,9 +11045,9 @@ call $~lib/string/String.fromCodePoint local.tee $2 call $~lib/string/String.__concat - local.tee $3 - call $~lib/rt/pure/__retain local.tee $4 + call $~lib/rt/pure/__retain + local.tee $5 call $~lib/string/String.__gt i32.eqz if @@ -11043,10 +11064,10 @@ call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release i32.const 760 call $~lib/string/String#get:length i32.const 3 @@ -11062,7 +11083,7 @@ i32.const 120 i32.const 100 call $~lib/string/String#repeat - local.tee $3 + local.tee $4 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -11077,7 +11098,7 @@ i32.const 408 i32.const 0 call $~lib/string/String#repeat - local.tee $4 + local.tee $5 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -11092,7 +11113,7 @@ i32.const 408 i32.const 1 call $~lib/string/String#repeat - local.tee $42 + local.tee $43 i32.const 408 call $~lib/string/String.__eq i32.eqz @@ -11107,7 +11128,7 @@ i32.const 408 i32.const 2 call $~lib/string/String#repeat - local.tee $43 + local.tee $44 i32.const 9744 call $~lib/string/String.__eq i32.eqz @@ -11122,7 +11143,7 @@ i32.const 408 i32.const 3 call $~lib/string/String#repeat - local.tee $44 + local.tee $45 i32.const 9816 call $~lib/string/String.__eq i32.eqz @@ -11137,7 +11158,7 @@ i32.const 9392 i32.const 4 call $~lib/string/String#repeat - local.tee $45 + local.tee $46 i32.const 9840 call $~lib/string/String.__eq i32.eqz @@ -11152,7 +11173,7 @@ i32.const 408 i32.const 5 call $~lib/string/String#repeat - local.tee $46 + local.tee $47 i32.const 9872 call $~lib/string/String.__eq i32.eqz @@ -11167,7 +11188,7 @@ i32.const 408 i32.const 6 call $~lib/string/String#repeat - local.tee $47 + local.tee $48 i32.const 9904 call $~lib/string/String.__eq i32.eqz @@ -11182,7 +11203,7 @@ i32.const 408 i32.const 7 call $~lib/string/String#repeat - local.tee $48 + local.tee $49 i32.const 9936 call $~lib/string/String.__eq i32.eqz @@ -11198,7 +11219,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replace - local.tee $49 + local.tee $50 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -11214,7 +11235,7 @@ i32.const 120 i32.const 4152 call $~lib/string/String#replace - local.tee $50 + local.tee $51 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -11230,7 +11251,7 @@ i32.const 4152 i32.const 120 call $~lib/string/String#replace - local.tee $51 + local.tee $52 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -11246,7 +11267,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replace - local.tee $52 + local.tee $53 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -11262,7 +11283,7 @@ i32.const 4176 i32.const 4152 call $~lib/string/String#replace - local.tee $53 + local.tee $54 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -11278,7 +11299,7 @@ i32.const 704 i32.const 4152 call $~lib/string/String#replace - local.tee $54 + local.tee $55 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -11294,7 +11315,7 @@ i32.const 9968 i32.const 4152 call $~lib/string/String#replace - local.tee $55 + local.tee $56 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -11310,7 +11331,7 @@ i32.const 9392 i32.const 9392 call $~lib/string/String#replace - local.tee $56 + local.tee $57 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -11326,7 +11347,7 @@ i32.const 4176 i32.const 4152 call $~lib/string/String#replace - local.tee $57 + local.tee $58 i32.const 10024 call $~lib/string/String.__eq i32.eqz @@ -11342,7 +11363,7 @@ i32.const 120 i32.const 4152 call $~lib/string/String#replace - local.tee $58 + local.tee $59 i32.const 10056 call $~lib/string/String.__eq i32.eqz @@ -11358,7 +11379,7 @@ i32.const 10104 i32.const 4152 call $~lib/string/String#replace - local.tee $59 + local.tee $60 i32.const 10056 call $~lib/string/String.__eq i32.eqz @@ -11374,7 +11395,7 @@ i32.const 10128 i32.const 10152 call $~lib/string/String#replace - local.tee $60 + local.tee $61 i32.const 10176 call $~lib/string/String.__eq i32.eqz @@ -11390,7 +11411,7 @@ i32.const 10128 i32.const 120 call $~lib/string/String#replace - local.tee $61 + local.tee $62 i32.const 9392 call $~lib/string/String.__eq i32.eqz @@ -11406,7 +11427,7 @@ i32.const 120 i32.const 704 call $~lib/string/String#replaceAll - local.tee $62 + local.tee $63 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -11422,7 +11443,7 @@ i32.const 4176 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $63 + local.tee $64 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -11438,7 +11459,7 @@ i32.const 704 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $64 + local.tee $65 i32.const 10152 call $~lib/string/String.__eq i32.eqz @@ -11454,7 +11475,7 @@ i32.const 704 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $65 + local.tee $66 i32.const 10240 call $~lib/string/String.__eq i32.eqz @@ -11470,7 +11491,7 @@ i32.const 9392 i32.const 9392 call $~lib/string/String#replaceAll - local.tee $66 + local.tee $67 i32.const 880 call $~lib/string/String.__eq i32.eqz @@ -11486,7 +11507,7 @@ i32.const 408 i32.const 10240 call $~lib/string/String#replaceAll - local.tee $67 + local.tee $68 i32.const 10296 call $~lib/string/String.__eq i32.eqz @@ -11502,7 +11523,7 @@ i32.const 9392 i32.const 10152 call $~lib/string/String#replaceAll - local.tee $68 + local.tee $69 i32.const 10344 call $~lib/string/String.__eq i32.eqz @@ -11518,7 +11539,7 @@ i32.const 10400 i32.const 10152 call $~lib/string/String#replaceAll - local.tee $69 + local.tee $70 i32.const 10424 call $~lib/string/String.__eq i32.eqz @@ -11534,7 +11555,7 @@ i32.const 9968 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $70 + local.tee $71 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -11550,7 +11571,7 @@ i32.const 10448 i32.const 10152 call $~lib/string/String#replaceAll - local.tee $71 + local.tee $72 i32.const 9968 call $~lib/string/String.__eq i32.eqz @@ -11566,7 +11587,7 @@ i32.const 10472 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $72 + local.tee $73 i32.const 10496 call $~lib/string/String.__eq i32.eqz @@ -11582,7 +11603,7 @@ i32.const 9392 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $73 + local.tee $74 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -11598,7 +11619,7 @@ i32.const 4176 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $74 + local.tee $75 i32.const 10520 call $~lib/string/String.__eq i32.eqz @@ -11614,7 +11635,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replaceAll - local.tee $75 + local.tee $76 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -11630,7 +11651,7 @@ i32.const 120 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $76 + local.tee $77 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -11646,7 +11667,7 @@ i32.const 4152 i32.const 120 call $~lib/string/String#replaceAll - local.tee $77 + local.tee $78 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -11662,7 +11683,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replaceAll - local.tee $78 + local.tee $79 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -11678,7 +11699,7 @@ i32.const 704 i32.const 4176 call $~lib/string/String#replaceAll - local.tee $79 + local.tee $80 i32.const 4176 call $~lib/string/String.__eq i32.eqz @@ -11694,7 +11715,7 @@ i32.const 10552 i32.const 4176 call $~lib/string/String#replaceAll - local.tee $80 + local.tee $81 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -11710,7 +11731,7 @@ i32.const 120 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $81 + local.tee $82 i32.const 10576 call $~lib/string/String.__eq i32.eqz @@ -11726,7 +11747,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replaceAll - local.tee $82 + local.tee $83 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -11755,7 +11776,7 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#slice - local.tee $83 + local.tee $84 i32.const 10608 call $~lib/string/String.__eq i32.eqz @@ -11771,7 +11792,7 @@ i32.const -1 i32.const 2147483647 call $~lib/string/String#slice - local.tee $84 + local.tee $85 i32.const 10656 call $~lib/string/String.__eq i32.eqz @@ -11787,7 +11808,7 @@ i32.const -5 i32.const 2147483647 call $~lib/string/String#slice - local.tee $85 + local.tee $86 i32.const 10680 call $~lib/string/String.__eq i32.eqz @@ -11803,7 +11824,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#slice - local.tee $86 + local.tee $87 i32.const 10712 call $~lib/string/String.__eq i32.eqz @@ -11819,7 +11840,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#slice - local.tee $87 + local.tee $88 i32.const 10744 call $~lib/string/String.__eq i32.eqz @@ -11835,7 +11856,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#slice - local.tee $88 + local.tee $89 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -11851,7 +11872,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#slice - local.tee $89 + local.tee $90 i32.const 10776 call $~lib/string/String.__eq i32.eqz @@ -12739,7 +12760,7 @@ end i32.const 12 call $~lib/util/number/itoa32 - local.tee $90 + local.tee $91 i32.const 11192 call $~lib/string/String.__eq i32.eqz @@ -12753,7 +12774,7 @@ end i32.const 123 call $~lib/util/number/itoa32 - local.tee $91 + local.tee $92 i32.const 760 call $~lib/string/String.__eq i32.eqz @@ -12767,7 +12788,7 @@ end i32.const -1000 call $~lib/util/number/itoa32 - local.tee $92 + local.tee $93 i32.const 11216 call $~lib/string/String.__eq i32.eqz @@ -12781,7 +12802,7 @@ end i32.const 1234 call $~lib/util/number/itoa32 - local.tee $93 + local.tee $94 i32.const 11248 call $~lib/string/String.__eq i32.eqz @@ -12795,7 +12816,7 @@ end i32.const 12345 call $~lib/util/number/itoa32 - local.tee $94 + local.tee $95 i32.const 11272 call $~lib/string/String.__eq i32.eqz @@ -12809,7 +12830,7 @@ end i32.const 123456 call $~lib/util/number/itoa32 - local.tee $95 + local.tee $96 i32.const 11304 call $~lib/string/String.__eq i32.eqz @@ -12823,7 +12844,7 @@ end i32.const 1111111 call $~lib/util/number/itoa32 - local.tee $96 + local.tee $97 i32.const 11336 call $~lib/string/String.__eq i32.eqz @@ -12837,7 +12858,7 @@ end i32.const 1234567 call $~lib/util/number/itoa32 - local.tee $97 + local.tee $98 i32.const 11368 call $~lib/string/String.__eq i32.eqz @@ -12851,7 +12872,7 @@ end i32.const 12345678 call $~lib/util/number/itoa32 - local.tee $98 + local.tee $99 i32.const 11400 call $~lib/string/String.__eq i32.eqz @@ -12865,7 +12886,7 @@ end i32.const 123456789 call $~lib/util/number/itoa32 - local.tee $99 + local.tee $100 i32.const 11432 call $~lib/string/String.__eq i32.eqz @@ -12879,7 +12900,7 @@ end i32.const 2147483646 call $~lib/util/number/itoa32 - local.tee $100 + local.tee $101 i32.const 11472 call $~lib/string/String.__eq i32.eqz @@ -12893,7 +12914,7 @@ end i32.const 2147483647 call $~lib/util/number/itoa32 - local.tee $101 + local.tee $102 i32.const 11512 call $~lib/string/String.__eq i32.eqz @@ -12907,7 +12928,7 @@ end i32.const -2147483648 call $~lib/util/number/itoa32 - local.tee $102 + local.tee $103 i32.const 11552 call $~lib/string/String.__eq i32.eqz @@ -12921,7 +12942,7 @@ end i32.const -1 call $~lib/util/number/itoa32 - local.tee $103 + local.tee $104 i32.const 11592 call $~lib/string/String.__eq i32.eqz @@ -12935,7 +12956,7 @@ end i32.const 0 call $~lib/util/number/utoa32 - local.tee $104 + local.tee $105 i32.const 1192 call $~lib/string/String.__eq i32.eqz @@ -12949,7 +12970,7 @@ end i32.const 1000 call $~lib/util/number/utoa32 - local.tee $105 + local.tee $106 i32.const 11616 call $~lib/string/String.__eq i32.eqz @@ -12963,7 +12984,7 @@ end i32.const 2147483647 call $~lib/util/number/utoa32 - local.tee $106 + local.tee $107 i32.const 11512 call $~lib/string/String.__eq i32.eqz @@ -12977,7 +12998,7 @@ end i32.const -2147483648 call $~lib/util/number/utoa32 - local.tee $107 + local.tee $108 i32.const 11640 call $~lib/string/String.__eq i32.eqz @@ -12991,7 +13012,7 @@ end i32.const -1 call $~lib/util/number/utoa32 - local.tee $108 + local.tee $109 i32.const 11680 call $~lib/string/String.__eq i32.eqz @@ -13005,7 +13026,7 @@ end i64.const 0 call $~lib/util/number/utoa64 - local.tee $109 + local.tee $110 i32.const 1192 call $~lib/string/String.__eq i32.eqz @@ -13019,7 +13040,7 @@ end i64.const 12 call $~lib/util/number/utoa64 - local.tee $110 + local.tee $111 i32.const 11192 call $~lib/string/String.__eq i32.eqz @@ -13033,7 +13054,7 @@ end i64.const 123 call $~lib/util/number/utoa64 - local.tee $111 + local.tee $112 i32.const 760 call $~lib/string/String.__eq i32.eqz @@ -13047,7 +13068,7 @@ end i64.const 1234 call $~lib/util/number/utoa64 - local.tee $112 + local.tee $113 i32.const 11248 call $~lib/string/String.__eq i32.eqz @@ -13061,7 +13082,7 @@ end i64.const 12345 call $~lib/util/number/utoa64 - local.tee $113 + local.tee $114 i32.const 11272 call $~lib/string/String.__eq i32.eqz @@ -13075,7 +13096,7 @@ end i64.const 123456 call $~lib/util/number/utoa64 - local.tee $114 + local.tee $115 i32.const 11304 call $~lib/string/String.__eq i32.eqz @@ -13089,7 +13110,7 @@ end i64.const 1234567 call $~lib/util/number/utoa64 - local.tee $115 + local.tee $116 i32.const 11368 call $~lib/string/String.__eq i32.eqz @@ -13103,7 +13124,7 @@ end i64.const 99999999 call $~lib/util/number/utoa64 - local.tee $116 + local.tee $117 i32.const 11720 call $~lib/string/String.__eq i32.eqz @@ -13117,7 +13138,7 @@ end i64.const 100000000 call $~lib/util/number/utoa64 - local.tee $117 + local.tee $118 i32.const 11752 call $~lib/string/String.__eq i32.eqz @@ -13131,7 +13152,7 @@ end i64.const 4294967295 call $~lib/util/number/utoa64 - local.tee $118 + local.tee $119 i32.const 11680 call $~lib/string/String.__eq i32.eqz @@ -13145,7 +13166,7 @@ end i64.const 4294967297 call $~lib/util/number/utoa64 - local.tee $119 + local.tee $120 i32.const 11792 call $~lib/string/String.__eq i32.eqz @@ -13159,7 +13180,7 @@ end i64.const 68719476735 call $~lib/util/number/utoa64 - local.tee $120 + local.tee $121 i32.const 11832 call $~lib/string/String.__eq i32.eqz @@ -13173,7 +13194,7 @@ end i64.const 868719476735 call $~lib/util/number/utoa64 - local.tee $121 + local.tee $122 i32.const 11872 call $~lib/string/String.__eq i32.eqz @@ -13187,7 +13208,7 @@ end i64.const 8687194767350 call $~lib/util/number/utoa64 - local.tee $122 + local.tee $123 i32.const 11912 call $~lib/string/String.__eq i32.eqz @@ -13201,7 +13222,7 @@ end i64.const 86871947673501 call $~lib/util/number/utoa64 - local.tee $123 + local.tee $124 i32.const 11960 call $~lib/string/String.__eq i32.eqz @@ -13215,7 +13236,7 @@ end i64.const 999868719476735 call $~lib/util/number/utoa64 - local.tee $124 + local.tee $125 i32.const 12008 call $~lib/string/String.__eq i32.eqz @@ -13229,7 +13250,7 @@ end i64.const 9999868719476735 call $~lib/util/number/utoa64 - local.tee $125 + local.tee $126 i32.const 12056 call $~lib/string/String.__eq i32.eqz @@ -13243,7 +13264,7 @@ end i64.const 19999868719476735 call $~lib/util/number/utoa64 - local.tee $126 + local.tee $127 i32.const 12104 call $~lib/string/String.__eq i32.eqz @@ -13257,7 +13278,7 @@ end i64.const 129999868719476735 call $~lib/util/number/utoa64 - local.tee $127 + local.tee $128 i32.const 12160 call $~lib/string/String.__eq i32.eqz @@ -13271,7 +13292,7 @@ end i64.const 1239999868719476735 call $~lib/util/number/utoa64 - local.tee $128 + local.tee $129 i32.const 12216 call $~lib/string/String.__eq i32.eqz @@ -13285,7 +13306,7 @@ end i64.const -1 call $~lib/util/number/utoa64 - local.tee $129 + local.tee $130 i32.const 12272 call $~lib/string/String.__eq i32.eqz @@ -13299,7 +13320,7 @@ end i64.const 0 call $~lib/util/number/itoa64 - local.tee $130 + local.tee $131 i32.const 1192 call $~lib/string/String.__eq i32.eqz @@ -13313,7 +13334,7 @@ end i64.const -1234 call $~lib/util/number/itoa64 - local.tee $131 + local.tee $132 i32.const 12328 call $~lib/string/String.__eq i32.eqz @@ -13327,7 +13348,7 @@ end i64.const 4294967295 call $~lib/util/number/itoa64 - local.tee $132 + local.tee $133 i32.const 11680 call $~lib/string/String.__eq i32.eqz @@ -13341,7 +13362,7 @@ end i64.const 4294967297 call $~lib/util/number/itoa64 - local.tee $133 + local.tee $134 i32.const 11792 call $~lib/string/String.__eq i32.eqz @@ -13355,7 +13376,7 @@ end i64.const -4294967295 call $~lib/util/number/itoa64 - local.tee $134 + local.tee $135 i32.const 12360 call $~lib/string/String.__eq i32.eqz @@ -13369,7 +13390,7 @@ end i64.const 68719476735 call $~lib/util/number/itoa64 - local.tee $135 + local.tee $136 i32.const 11832 call $~lib/string/String.__eq i32.eqz @@ -13383,7 +13404,7 @@ end i64.const -68719476735 call $~lib/util/number/itoa64 - local.tee $136 + local.tee $137 i32.const 12400 call $~lib/string/String.__eq i32.eqz @@ -13397,7 +13418,7 @@ end i64.const -868719476735 call $~lib/util/number/itoa64 - local.tee $137 + local.tee $138 i32.const 12440 call $~lib/string/String.__eq i32.eqz @@ -13411,7 +13432,7 @@ end i64.const -999868719476735 call $~lib/util/number/itoa64 - local.tee $138 + local.tee $139 i32.const 12488 call $~lib/string/String.__eq i32.eqz @@ -13425,7 +13446,7 @@ end i64.const -19999868719476735 call $~lib/util/number/itoa64 - local.tee $139 + local.tee $140 i32.const 12536 call $~lib/string/String.__eq i32.eqz @@ -13439,7 +13460,7 @@ end i64.const 9223372036854775807 call $~lib/util/number/itoa64 - local.tee $140 + local.tee $141 i32.const 12592 call $~lib/string/String.__eq i32.eqz @@ -13453,7 +13474,7 @@ end i64.const -9223372036854775808 call $~lib/util/number/itoa64 - local.tee $141 + local.tee $142 i32.const 12648 call $~lib/string/String.__eq i32.eqz @@ -13467,7 +13488,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $142 + local.tee $143 i32.const 12704 call $~lib/string/String.__eq i32.eqz @@ -13481,7 +13502,7 @@ end f64.const -0 call $~lib/util/number/dtoa - local.tee $143 + local.tee $144 i32.const 12704 call $~lib/string/String.__eq i32.eqz @@ -13495,7 +13516,7 @@ end f64.const nan:0x8000000000000 call $~lib/util/number/dtoa - local.tee $144 + local.tee $145 i32.const 4344 call $~lib/string/String.__eq i32.eqz @@ -13509,7 +13530,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $145 + local.tee $146 i32.const 12728 call $~lib/string/String.__eq i32.eqz @@ -13523,7 +13544,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $146 + local.tee $147 i32.const 5224 call $~lib/string/String.__eq i32.eqz @@ -13537,7 +13558,7 @@ end f64.const 2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $147 + local.tee $148 i32.const 4552 call $~lib/string/String.__eq i32.eqz @@ -13551,7 +13572,7 @@ end f64.const -2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $148 + local.tee $149 i32.const 13816 call $~lib/string/String.__eq i32.eqz @@ -13565,7 +13586,7 @@ end f64.const 1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $149 + local.tee $150 i32.const 4616 call $~lib/string/String.__eq i32.eqz @@ -13579,7 +13600,7 @@ end f64.const -1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $150 + local.tee $151 i32.const 13880 call $~lib/string/String.__eq i32.eqz @@ -13593,7 +13614,7 @@ end f64.const 4185580496821356722454785e274 call $~lib/util/number/dtoa - local.tee $151 + local.tee $152 i32.const 13944 call $~lib/string/String.__eq i32.eqz @@ -13607,7 +13628,7 @@ end f64.const 2.2250738585072014e-308 call $~lib/util/number/dtoa - local.tee $152 + local.tee $153 i32.const 14008 call $~lib/string/String.__eq i32.eqz @@ -13621,7 +13642,7 @@ end f64.const 4.940656e-318 call $~lib/util/number/dtoa - local.tee $153 + local.tee $154 i32.const 14072 call $~lib/string/String.__eq i32.eqz @@ -13635,7 +13656,7 @@ end f64.const 9060801153433600 call $~lib/util/number/dtoa - local.tee $154 + local.tee $155 i32.const 14120 call $~lib/string/String.__eq i32.eqz @@ -13649,7 +13670,7 @@ end f64.const 4708356024711512064 call $~lib/util/number/dtoa - local.tee $155 + local.tee $156 i32.const 14176 call $~lib/string/String.__eq i32.eqz @@ -13663,7 +13684,7 @@ end f64.const 9409340012568248320 call $~lib/util/number/dtoa - local.tee $156 + local.tee $157 i32.const 14240 call $~lib/string/String.__eq i32.eqz @@ -13677,7 +13698,7 @@ end f64.const 5e-324 call $~lib/util/number/dtoa - local.tee $157 + local.tee $158 i32.const 4680 call $~lib/string/String.__eq i32.eqz @@ -13691,7 +13712,7 @@ end f64.const 1 call $~lib/util/number/dtoa - local.tee $158 + local.tee $159 i32.const 14304 call $~lib/string/String.__eq i32.eqz @@ -13705,7 +13726,7 @@ end f64.const 0.1 call $~lib/util/number/dtoa - local.tee $159 + local.tee $160 i32.const 2352 call $~lib/string/String.__eq i32.eqz @@ -13719,7 +13740,7 @@ end f64.const -1 call $~lib/util/number/dtoa - local.tee $160 + local.tee $161 i32.const 14328 call $~lib/string/String.__eq i32.eqz @@ -13733,7 +13754,7 @@ end f64.const -0.1 call $~lib/util/number/dtoa - local.tee $161 + local.tee $162 i32.const 14352 call $~lib/string/String.__eq i32.eqz @@ -13747,7 +13768,7 @@ end f64.const 1e6 call $~lib/util/number/dtoa - local.tee $162 + local.tee $163 i32.const 14376 call $~lib/string/String.__eq i32.eqz @@ -13761,7 +13782,7 @@ end f64.const 1e-06 call $~lib/util/number/dtoa - local.tee $163 + local.tee $164 i32.const 14416 call $~lib/string/String.__eq i32.eqz @@ -13775,7 +13796,7 @@ end f64.const -1e6 call $~lib/util/number/dtoa - local.tee $164 + local.tee $165 i32.const 14448 call $~lib/string/String.__eq i32.eqz @@ -13789,7 +13810,7 @@ end f64.const -1e-06 call $~lib/util/number/dtoa - local.tee $165 + local.tee $166 i32.const 14488 call $~lib/string/String.__eq i32.eqz @@ -13803,7 +13824,7 @@ end f64.const 1e7 call $~lib/util/number/dtoa - local.tee $166 + local.tee $167 i32.const 14528 call $~lib/string/String.__eq i32.eqz @@ -13817,7 +13838,7 @@ end f64.const 1e-07 call $~lib/util/number/dtoa - local.tee $167 + local.tee $168 i32.const 14568 call $~lib/string/String.__eq i32.eqz @@ -13831,7 +13852,7 @@ end f64.const 1.e+308 call $~lib/util/number/dtoa - local.tee $168 + local.tee $169 i32.const 2528 call $~lib/string/String.__eq i32.eqz @@ -13845,7 +13866,7 @@ end f64.const -1.e+308 call $~lib/util/number/dtoa - local.tee $169 + local.tee $170 i32.const 14592 call $~lib/string/String.__eq i32.eqz @@ -13859,7 +13880,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $170 + local.tee $171 i32.const 12728 call $~lib/string/String.__eq i32.eqz @@ -13873,7 +13894,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $171 + local.tee $172 i32.const 5224 call $~lib/string/String.__eq i32.eqz @@ -13887,7 +13908,7 @@ end f64.const 1e-308 call $~lib/util/number/dtoa - local.tee $172 + local.tee $173 i32.const 14624 call $~lib/string/String.__eq i32.eqz @@ -13901,7 +13922,7 @@ end f64.const -1e-308 call $~lib/util/number/dtoa - local.tee $173 + local.tee $174 i32.const 14656 call $~lib/string/String.__eq i32.eqz @@ -13915,7 +13936,7 @@ end f64.const 1e-323 call $~lib/util/number/dtoa - local.tee $174 + local.tee $175 i32.const 14688 call $~lib/string/String.__eq i32.eqz @@ -13929,7 +13950,7 @@ end f64.const -1e-323 call $~lib/util/number/dtoa - local.tee $175 + local.tee $176 i32.const 14720 call $~lib/string/String.__eq i32.eqz @@ -13943,7 +13964,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $176 + local.tee $177 i32.const 12704 call $~lib/string/String.__eq i32.eqz @@ -13957,7 +13978,7 @@ end f64.const 4294967272 call $~lib/util/number/dtoa - local.tee $177 + local.tee $178 i32.const 14752 call $~lib/string/String.__eq i32.eqz @@ -13971,7 +13992,7 @@ end f64.const 1.2312145673456234e-08 call $~lib/util/number/dtoa - local.tee $178 + local.tee $179 i32.const 14792 call $~lib/string/String.__eq i32.eqz @@ -13985,7 +14006,7 @@ end f64.const 555555555.5555556 call $~lib/util/number/dtoa - local.tee $179 + local.tee $180 i32.const 14856 call $~lib/string/String.__eq i32.eqz @@ -13999,7 +14020,7 @@ end f64.const 0.9999999999999999 call $~lib/util/number/dtoa - local.tee $180 + local.tee $181 i32.const 14912 call $~lib/string/String.__eq i32.eqz @@ -14013,7 +14034,7 @@ end f64.const 1 call $~lib/util/number/dtoa - local.tee $181 + local.tee $182 i32.const 14304 call $~lib/string/String.__eq i32.eqz @@ -14027,7 +14048,7 @@ end f64.const 12.34 call $~lib/util/number/dtoa - local.tee $182 + local.tee $183 i32.const 14968 call $~lib/string/String.__eq i32.eqz @@ -14041,7 +14062,7 @@ end f64.const 0.3333333333333333 call $~lib/util/number/dtoa - local.tee $183 + local.tee $184 i32.const 15000 call $~lib/string/String.__eq i32.eqz @@ -14055,7 +14076,7 @@ end f64.const 1234e17 call $~lib/util/number/dtoa - local.tee $184 + local.tee $185 i32.const 15056 call $~lib/string/String.__eq i32.eqz @@ -14069,7 +14090,7 @@ end f64.const 1234e18 call $~lib/util/number/dtoa - local.tee $185 + local.tee $186 i32.const 15120 call $~lib/string/String.__eq i32.eqz @@ -14083,7 +14104,7 @@ end f64.const 2.71828 call $~lib/util/number/dtoa - local.tee $186 + local.tee $187 i32.const 15160 call $~lib/string/String.__eq i32.eqz @@ -14097,7 +14118,7 @@ end f64.const 0.0271828 call $~lib/util/number/dtoa - local.tee $187 + local.tee $188 i32.const 15192 call $~lib/string/String.__eq i32.eqz @@ -14111,7 +14132,7 @@ end f64.const 271.828 call $~lib/util/number/dtoa - local.tee $188 + local.tee $189 i32.const 15232 call $~lib/string/String.__eq i32.eqz @@ -14125,7 +14146,7 @@ end f64.const 1.1e+128 call $~lib/util/number/dtoa - local.tee $189 + local.tee $190 i32.const 15264 call $~lib/string/String.__eq i32.eqz @@ -14139,7 +14160,7 @@ end f64.const 1.1e-64 call $~lib/util/number/dtoa - local.tee $190 + local.tee $191 i32.const 15296 call $~lib/string/String.__eq i32.eqz @@ -14153,7 +14174,7 @@ end f64.const 0.000035689 call $~lib/util/number/dtoa - local.tee $191 + local.tee $192 i32.const 15328 call $~lib/string/String.__eq i32.eqz @@ -14167,8 +14188,6 @@ end global.get $std/string/str call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $7 @@ -14231,7 +14250,7 @@ call $~lib/rt/pure/__release local.get $36 call $~lib/rt/pure/__release - local.get $38 + local.get $37 call $~lib/rt/pure/__release local.get $39 call $~lib/rt/pure/__release @@ -14239,17 +14258,17 @@ call $~lib/rt/pure/__release local.get $41 call $~lib/rt/pure/__release - local.get $43 + local.get $42 call $~lib/rt/pure/__release local.get $44 call $~lib/rt/pure/__release - local.get $42 + local.get $45 call $~lib/rt/pure/__release - local.get $4 + local.get $43 call $~lib/rt/pure/__release - local.get $3 + local.get $5 call $~lib/rt/pure/__release - local.get $45 + local.get $4 call $~lib/rt/pure/__release local.get $46 call $~lib/rt/pure/__release @@ -14339,14 +14358,14 @@ call $~lib/rt/pure/__release local.get $89 call $~lib/rt/pure/__release + local.get $90 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $90 - call $~lib/rt/pure/__release local.get $91 call $~lib/rt/pure/__release local.get $92 @@ -14549,12 +14568,14 @@ call $~lib/rt/pure/__release local.get $191 call $~lib/rt/pure/__release + local.get $192 + call $~lib/rt/pure/__release ) - (func $std/string/getString (; 91 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 90 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $start (; 92 ;) (type $FUNCSIG$v) + (func $start (; 91 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -14564,7 +14585,7 @@ end call $start:std/string ) - (func $~lib/rt/pure/__visit (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 15428 i32.lt_u @@ -14674,7 +14695,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -14707,7 +14728,7 @@ end end ) - (func $~lib/rt/__visit_members (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$6 @@ -14736,7 +14757,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 96 ;) (type $FUNCSIG$v) + (func $null (; 95 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 945ce4191b..ac453c9481 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -12,10 +12,10 @@ (type $FUNCSIG$jii (func (param i32 i32) (result i64))) (type $FUNCSIG$di (func (param i32) (result f64))) (type $FUNCSIG$ddi (func (param f64 i32) (result f64))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$ij (func (param i64) (result i32))) (type $FUNCSIG$viji (func (param i32 i64 i32))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $FUNCSIG$i (func (result i32))) @@ -6672,7 +6672,9 @@ i32.add local.set $16 local.get $17 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if (result i32) i32.const 1 else @@ -7054,12 +7056,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/number/isNaN (; 62 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/string/String#concat (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7135,7 +7132,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7158,7 +7155,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7177,7 +7174,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__gt (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7267,7 +7264,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__lt (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7357,7 +7354,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__gte (; 68 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gte (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7376,7 +7373,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__lte (; 69 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lte (; 68 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7395,7 +7392,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String#repeat (; 70 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (; 69 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7463,7 +7460,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#replace (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#replace (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7597,7 +7594,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $~lib/rt/tlsf/reallocateBlock (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7735,7 +7732,7 @@ call $~lib/rt/rtrace/onfree local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 73 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -7775,7 +7772,7 @@ i32.const 16 i32.add ) - (func $~lib/string/String#replaceAll (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#replaceAll (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8148,7 +8145,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $~lib/string/String#slice (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#slice (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8237,7 +8234,7 @@ local.get $6 call $~lib/rt/pure/__retain ) - (func $~lib/rt/__allocArray (; 76 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 75 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -8275,7 +8272,7 @@ end local.get $4 ) - (func $~lib/memory/memory.fill (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 76 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8539,7 +8536,7 @@ end end ) - (func $~lib/array/ensureSize (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8602,7 +8599,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#push (; 79 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#push (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8638,7 +8635,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/string/String#split (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8945,11 +8942,11 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 81 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 80 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -8959,7 +8956,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 83 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -8991,7 +8988,7 @@ end local.get $2 ) - (func $~lib/util/number/decimalCount32 (; 84 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 83 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -9057,7 +9054,7 @@ end unreachable ) - (func $~lib/util/number/utoa32_lut (; 85 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 84 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9199,7 +9196,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 86 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 85 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9254,7 +9251,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/utoa32 (; 87 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 86 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9289,7 +9286,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/decimalCount64 (; 88 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 87 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -9362,7 +9359,7 @@ end unreachable ) - (func $~lib/util/number/utoa64_lut (; 89 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 88 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -9489,7 +9486,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 90 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 89 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9498,7 +9495,9 @@ (local $6 i32) (local $7 i64) local.get $0 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if i32.const 1192 call $~lib/rt/pure/__retain @@ -9554,7 +9553,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa64 (; 91 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 90 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9564,7 +9563,9 @@ (local $7 i32) (local $8 i64) local.get $0 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if i32.const 1192 call $~lib/rt/pure/__retain @@ -9641,14 +9642,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/number/isFinite (; 92 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/array/Array#__unchecked_get (; 93 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 91 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -9657,7 +9651,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 94 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 92 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -9666,7 +9660,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 95 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 93 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -10168,7 +10162,7 @@ end unreachable ) - (func $~lib/util/number/prettify (; 96 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10487,7 +10481,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 97 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 95 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10909,7 +10903,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 98 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 96 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11016,7 +11010,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/dtoa (; 99 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 97 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11029,11 +11023,15 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 4344 call $~lib/rt/pure/__retain @@ -11075,7 +11073,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $start:std/string (; 100 ;) (type $FUNCSIG$v) + (func $start:std/string (; 98 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11108,7 +11106,7 @@ (local $29 i32) (local $30 i32) (local $31 i32) - (local $32 i32) + (local $32 f64) (local $33 i32) (local $34 i32) (local $35 i32) @@ -11267,6 +11265,7 @@ (local $188 i32) (local $189 i32) (local $190 i32) + (local $191 i32) global.get $std/string/str i32.const 24 i32.eq @@ -12667,7 +12666,9 @@ end i32.const 120 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13368,7 +13369,9 @@ end i32.const 4152 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13380,7 +13383,9 @@ end i32.const 4176 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13392,7 +13397,9 @@ end i32.const 4200 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13404,7 +13411,9 @@ end i32.const 4224 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13416,7 +13425,9 @@ end i32.const 4248 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13428,7 +13439,9 @@ end i32.const 4272 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13440,7 +13453,9 @@ end i32.const 4296 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13452,7 +13467,9 @@ end i32.const 4320 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13464,7 +13481,9 @@ end i32.const 4344 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13476,7 +13495,9 @@ end i32.const 4368 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13488,7 +13509,9 @@ end i32.const 4392 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13500,7 +13523,9 @@ end i32.const 4416 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13512,7 +13537,9 @@ end i32.const 4440 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13524,7 +13551,9 @@ end i32.const 4472 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13536,7 +13565,9 @@ end i32.const 4496 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13548,7 +13579,9 @@ end i32.const 4520 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13781,7 +13814,9 @@ end i32.const 5344 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13793,7 +13828,9 @@ end i32.const 5368 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13805,7 +13842,9 @@ end i32.const 5400 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -13857,16 +13896,16 @@ i32.const 6008 i32.const 6160 call $~lib/string/String.__concat - local.tee $32 + local.tee $33 i32.const 6312 call $~lib/string/String.__concat - local.tee $33 + local.tee $34 i32.const 6464 call $~lib/string/String.__concat - local.tee $34 + local.tee $35 i32.const 6616 call $~lib/string/String.__concat - local.tee $35 + local.tee $36 call $~lib/string/parseFloat f64.const 1797693134862315708145274e284 f64.eq @@ -14193,7 +14232,9 @@ end i32.const 9312 call $~lib/string/parseFloat - call $~lib/number/isNaN + local.tee $32 + local.get $32 + f64.ne i32.eqz if i32.const 0 @@ -14219,10 +14260,10 @@ i32.const 408 i32.const 9368 call $~lib/string/String.__concat - local.tee $36 + local.tee $37 call $~lib/rt/pure/__retain - local.set $37 - local.get $37 + local.set $38 + local.get $38 i32.const 9392 call $~lib/string/String.__eq i32.eqz @@ -14234,7 +14275,7 @@ call $~lib/builtins/abort unreachable end - local.get $37 + local.get $38 i32.const 408 call $~lib/string/String.__ne i32.eqz @@ -14246,10 +14287,10 @@ call $~lib/builtins/abort unreachable end - local.get $36 - call $~lib/rt/pure/__release local.get $37 call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release i32.const 120 i32.const 120 call $~lib/string/String.__eq @@ -14607,19 +14648,19 @@ end i32.const 65377 call $~lib/string/String.fromCodePoint - local.set $37 + local.set $38 i32.const 55296 call $~lib/string/String.fromCodePoint - local.tee $36 + local.tee $37 i32.const 56322 call $~lib/string/String.fromCodePoint - local.tee $38 - call $~lib/string/String.__concat local.tee $39 + call $~lib/string/String.__concat + local.tee $40 call $~lib/rt/pure/__retain - local.set $40 - local.get $37 - local.get $40 + local.set $41 + local.get $38 + local.get $41 call $~lib/string/String.__gt i32.eqz if @@ -14630,16 +14671,16 @@ call $~lib/builtins/abort unreachable end - local.get $37 - call $~lib/rt/pure/__release - local.get $36 - call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release + local.get $37 + call $~lib/rt/pure/__release local.get $39 call $~lib/rt/pure/__release local.get $40 call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release i32.const 760 call $~lib/string/String#get:length i32.const 3 @@ -14656,7 +14697,7 @@ i32.const 120 i32.const 100 call $~lib/string/String#repeat - local.tee $40 + local.tee $41 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -14671,7 +14712,7 @@ i32.const 408 i32.const 0 call $~lib/string/String#repeat - local.tee $39 + local.tee $40 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -14686,7 +14727,7 @@ i32.const 408 i32.const 1 call $~lib/string/String#repeat - local.tee $38 + local.tee $39 i32.const 408 call $~lib/string/String.__eq i32.eqz @@ -14701,7 +14742,7 @@ i32.const 408 i32.const 2 call $~lib/string/String#repeat - local.tee $36 + local.tee $37 i32.const 9744 call $~lib/string/String.__eq i32.eqz @@ -14716,7 +14757,7 @@ i32.const 408 i32.const 3 call $~lib/string/String#repeat - local.tee $37 + local.tee $38 i32.const 9816 call $~lib/string/String.__eq i32.eqz @@ -14731,7 +14772,7 @@ i32.const 9392 i32.const 4 call $~lib/string/String#repeat - local.tee $41 + local.tee $42 i32.const 9840 call $~lib/string/String.__eq i32.eqz @@ -14746,7 +14787,7 @@ i32.const 408 i32.const 5 call $~lib/string/String#repeat - local.tee $42 + local.tee $43 i32.const 9872 call $~lib/string/String.__eq i32.eqz @@ -14761,7 +14802,7 @@ i32.const 408 i32.const 6 call $~lib/string/String#repeat - local.tee $43 + local.tee $44 i32.const 9904 call $~lib/string/String.__eq i32.eqz @@ -14776,7 +14817,7 @@ i32.const 408 i32.const 7 call $~lib/string/String#repeat - local.tee $44 + local.tee $45 i32.const 9936 call $~lib/string/String.__eq i32.eqz @@ -14792,7 +14833,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replace - local.tee $45 + local.tee $46 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -14808,7 +14849,7 @@ i32.const 120 i32.const 4152 call $~lib/string/String#replace - local.tee $46 + local.tee $47 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -14824,7 +14865,7 @@ i32.const 4152 i32.const 120 call $~lib/string/String#replace - local.tee $47 + local.tee $48 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -14840,7 +14881,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replace - local.tee $48 + local.tee $49 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -14856,7 +14897,7 @@ i32.const 4176 i32.const 4152 call $~lib/string/String#replace - local.tee $49 + local.tee $50 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -14872,7 +14913,7 @@ i32.const 704 i32.const 4152 call $~lib/string/String#replace - local.tee $50 + local.tee $51 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -14888,7 +14929,7 @@ i32.const 9968 i32.const 4152 call $~lib/string/String#replace - local.tee $51 + local.tee $52 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -14904,7 +14945,7 @@ i32.const 9392 i32.const 9392 call $~lib/string/String#replace - local.tee $52 + local.tee $53 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -14920,7 +14961,7 @@ i32.const 4176 i32.const 4152 call $~lib/string/String#replace - local.tee $53 + local.tee $54 i32.const 10024 call $~lib/string/String.__eq i32.eqz @@ -14936,7 +14977,7 @@ i32.const 120 i32.const 4152 call $~lib/string/String#replace - local.tee $54 + local.tee $55 i32.const 10056 call $~lib/string/String.__eq i32.eqz @@ -14952,7 +14993,7 @@ i32.const 10104 i32.const 4152 call $~lib/string/String#replace - local.tee $55 + local.tee $56 i32.const 10056 call $~lib/string/String.__eq i32.eqz @@ -14968,7 +15009,7 @@ i32.const 10128 i32.const 10152 call $~lib/string/String#replace - local.tee $56 + local.tee $57 i32.const 10176 call $~lib/string/String.__eq i32.eqz @@ -14984,7 +15025,7 @@ i32.const 10128 i32.const 120 call $~lib/string/String#replace - local.tee $57 + local.tee $58 i32.const 9392 call $~lib/string/String.__eq i32.eqz @@ -15000,7 +15041,7 @@ i32.const 120 i32.const 704 call $~lib/string/String#replaceAll - local.tee $58 + local.tee $59 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -15016,7 +15057,7 @@ i32.const 4176 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $59 + local.tee $60 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -15032,7 +15073,7 @@ i32.const 704 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $60 + local.tee $61 i32.const 10152 call $~lib/string/String.__eq i32.eqz @@ -15048,7 +15089,7 @@ i32.const 704 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $61 + local.tee $62 i32.const 10240 call $~lib/string/String.__eq i32.eqz @@ -15064,7 +15105,7 @@ i32.const 9392 i32.const 9392 call $~lib/string/String#replaceAll - local.tee $62 + local.tee $63 i32.const 880 call $~lib/string/String.__eq i32.eqz @@ -15080,7 +15121,7 @@ i32.const 408 i32.const 10240 call $~lib/string/String#replaceAll - local.tee $63 + local.tee $64 i32.const 10296 call $~lib/string/String.__eq i32.eqz @@ -15096,7 +15137,7 @@ i32.const 9392 i32.const 10152 call $~lib/string/String#replaceAll - local.tee $64 + local.tee $65 i32.const 10344 call $~lib/string/String.__eq i32.eqz @@ -15112,7 +15153,7 @@ i32.const 10400 i32.const 10152 call $~lib/string/String#replaceAll - local.tee $65 + local.tee $66 i32.const 10424 call $~lib/string/String.__eq i32.eqz @@ -15128,7 +15169,7 @@ i32.const 9968 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $66 + local.tee $67 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -15144,7 +15185,7 @@ i32.const 10448 i32.const 10152 call $~lib/string/String#replaceAll - local.tee $67 + local.tee $68 i32.const 9968 call $~lib/string/String.__eq i32.eqz @@ -15160,7 +15201,7 @@ i32.const 10472 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $68 + local.tee $69 i32.const 10496 call $~lib/string/String.__eq i32.eqz @@ -15176,7 +15217,7 @@ i32.const 9392 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $69 + local.tee $70 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -15192,7 +15233,7 @@ i32.const 4176 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $70 + local.tee $71 i32.const 10520 call $~lib/string/String.__eq i32.eqz @@ -15208,7 +15249,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replaceAll - local.tee $71 + local.tee $72 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -15224,7 +15265,7 @@ i32.const 120 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $72 + local.tee $73 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -15240,7 +15281,7 @@ i32.const 4152 i32.const 120 call $~lib/string/String#replaceAll - local.tee $73 + local.tee $74 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -15256,7 +15297,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replaceAll - local.tee $74 + local.tee $75 i32.const 4152 call $~lib/string/String.__eq i32.eqz @@ -15272,7 +15313,7 @@ i32.const 704 i32.const 4176 call $~lib/string/String#replaceAll - local.tee $75 + local.tee $76 i32.const 4176 call $~lib/string/String.__eq i32.eqz @@ -15288,7 +15329,7 @@ i32.const 10552 i32.const 4176 call $~lib/string/String#replaceAll - local.tee $76 + local.tee $77 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -15304,7 +15345,7 @@ i32.const 120 i32.const 4152 call $~lib/string/String#replaceAll - local.tee $77 + local.tee $78 i32.const 10576 call $~lib/string/String.__eq i32.eqz @@ -15320,7 +15361,7 @@ i32.const 120 i32.const 120 call $~lib/string/String#replaceAll - local.tee $78 + local.tee $79 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -15333,24 +15374,24 @@ unreachable end i32.const 10608 - local.tee $79 - global.get $std/string/str local.tee $80 + global.get $std/string/str + local.tee $81 i32.ne if - local.get $79 + local.get $80 call $~lib/rt/pure/__retain drop - local.get $80 + local.get $81 call $~lib/rt/pure/__release end - local.get $79 + local.get $80 global.set $std/string/str global.get $std/string/str i32.const 0 i32.const 2147483647 call $~lib/string/String#slice - local.tee $79 + local.tee $80 i32.const 10608 call $~lib/string/String.__eq i32.eqz @@ -15366,7 +15407,7 @@ i32.const -1 i32.const 2147483647 call $~lib/string/String#slice - local.tee $80 + local.tee $81 i32.const 10656 call $~lib/string/String.__eq i32.eqz @@ -15382,7 +15423,7 @@ i32.const -5 i32.const 2147483647 call $~lib/string/String#slice - local.tee $81 + local.tee $82 i32.const 10680 call $~lib/string/String.__eq i32.eqz @@ -15398,7 +15439,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#slice - local.tee $82 + local.tee $83 i32.const 10712 call $~lib/string/String.__eq i32.eqz @@ -15414,7 +15455,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#slice - local.tee $83 + local.tee $84 i32.const 10744 call $~lib/string/String.__eq i32.eqz @@ -15430,7 +15471,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#slice - local.tee $84 + local.tee $85 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -15446,7 +15487,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#slice - local.tee $85 + local.tee $86 i32.const 10776 call $~lib/string/String.__eq i32.eqz @@ -15459,31 +15500,31 @@ unreachable end i32.const 0 - local.set $86 + local.set $87 i32.const 120 i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $87 - local.get $86 + local.set $88 + local.get $87 call $~lib/rt/pure/__release + local.get $88 + local.set $87 local.get $87 - local.set $86 - local.get $86 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 120 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end @@ -15502,12 +15543,12 @@ i32.const 120 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $88 - local.get $86 + local.set $89 + local.get $87 call $~lib/rt/pure/__release - local.get $88 - local.set $86 - local.get $86 + local.get $89 + local.set $87 + local.get $87 call $~lib/array/Array<~lib/string/String>#get:length i32.const 0 i32.eq @@ -15524,26 +15565,26 @@ i32.const 944 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $87 - local.get $86 - call $~lib/rt/pure/__release + local.set $88 + local.get $87 + call $~lib/rt/pure/__release + local.get $88 + local.set $87 local.get $87 - local.set $86 - local.get $86 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 120 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end @@ -15562,26 +15603,26 @@ i32.const 4296 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $88 - local.get $86 + local.set $89 + local.get $87 call $~lib/rt/pure/__release - local.get $88 - local.set $86 - local.get $86 + local.get $89 + local.set $87 + local.get $87 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 10984 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end @@ -15600,58 +15641,58 @@ i32.const 944 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $87 - local.get $86 + local.set $88 + local.get $87 call $~lib/rt/pure/__release + local.get $88 + local.set $87 local.get $87 - local.set $86 - local.get $86 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 408 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 9368 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 10128 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end @@ -15670,58 +15711,58 @@ i32.const 11048 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $88 - local.get $86 + local.set $89 + local.get $87 call $~lib/rt/pure/__release - local.get $88 - local.set $86 - local.get $86 + local.get $89 + local.set $87 + local.get $87 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 408 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 9368 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 10128 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end @@ -15740,74 +15781,74 @@ i32.const 944 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $87 - local.get $86 + local.set $88 + local.get $87 call $~lib/rt/pure/__release + local.get $88 + local.set $87 local.get $87 - local.set $86 - local.get $86 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 408 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 9368 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 120 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 10128 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end @@ -15826,74 +15867,74 @@ i32.const 944 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $88 - local.get $86 + local.set $89 + local.get $87 call $~lib/rt/pure/__release - local.get $88 - local.set $86 - local.get $86 + local.get $89 + local.set $87 + local.get $87 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 120 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 408 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 9368 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 10128 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end @@ -15912,74 +15953,74 @@ i32.const 944 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $87 - local.get $86 + local.set $88 + local.get $87 call $~lib/rt/pure/__release + local.get $88 + local.set $87 local.get $87 - local.set $86 - local.get $86 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 408 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 9368 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 10128 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 120 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end @@ -15998,58 +16039,58 @@ i32.const 120 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split - local.set $88 - local.get $86 + local.set $89 + local.get $87 call $~lib/rt/pure/__release - local.get $88 - local.set $86 - local.get $86 + local.get $89 + local.set $87 + local.get $87 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 408 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 9368 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 10128 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end @@ -16068,12 +16109,12 @@ i32.const 120 i32.const 0 call $~lib/string/String#split - local.set $87 - local.get $86 + local.set $88 + local.get $87 call $~lib/rt/pure/__release + local.get $88 + local.set $87 local.get $87 - local.set $86 - local.get $86 call $~lib/array/Array<~lib/string/String>#get:length i32.const 0 i32.eq @@ -16090,26 +16131,26 @@ i32.const 120 i32.const 1 call $~lib/string/String#split - local.set $88 - local.get $86 + local.set $89 + local.get $87 call $~lib/rt/pure/__release - local.get $88 - local.set $86 - local.get $86 + local.get $89 + local.set $87 + local.get $87 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 408 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end @@ -16128,26 +16169,26 @@ i32.const 944 i32.const 1 call $~lib/string/String#split - local.set $87 - local.get $86 + local.set $88 + local.get $87 call $~lib/rt/pure/__release + local.get $88 + local.set $87 local.get $87 - local.set $86 - local.get $86 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 408 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end @@ -16166,58 +16207,58 @@ i32.const 120 i32.const 4 call $~lib/string/String#split - local.set $88 - local.get $86 + local.set $89 + local.get $87 call $~lib/rt/pure/__release - local.get $88 - local.set $86 - local.get $86 + local.get $89 + local.set $87 + local.get $87 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 408 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 9368 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 10128 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end @@ -16236,58 +16277,58 @@ i32.const 120 i32.const -1 call $~lib/string/String#split - local.set $87 - local.get $86 + local.set $88 + local.get $87 call $~lib/rt/pure/__release + local.get $88 + local.set $87 local.get $87 - local.set $86 - local.get $86 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 408 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 9368 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $87 + local.tee $88 i32.const 10128 call $~lib/string/String.__eq - local.set $88 - local.get $87 - call $~lib/rt/pure/__release + local.set $89 local.get $88 + call $~lib/rt/pure/__release + local.get $89 else i32.const 0 end @@ -16306,58 +16347,58 @@ i32.const 944 i32.const -1 call $~lib/string/String#split - local.set $88 - local.get $86 + local.set $89 + local.get $87 call $~lib/rt/pure/__release - local.get $88 - local.set $86 - local.get $86 + local.get $89 + local.set $87 + local.get $87 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $86 + local.get $87 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 408 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 9368 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end i32.const 0 i32.ne if (result i32) - local.get $86 + local.get $87 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $88 + local.tee $89 i32.const 10128 call $~lib/string/String.__eq - local.set $87 - local.get $88 + local.set $88 + local.get $89 call $~lib/rt/pure/__release - local.get $87 + local.get $88 else i32.const 0 end @@ -16372,11 +16413,11 @@ call $~lib/builtins/abort unreachable end - local.get $86 + local.get $87 call $~lib/rt/pure/__release i32.const 0 call $~lib/util/number/itoa32 - local.tee $86 + local.tee $87 i32.const 1192 call $~lib/string/String.__eq i32.eqz @@ -16390,7 +16431,7 @@ end i32.const 1 call $~lib/util/number/itoa32 - local.tee $88 + local.tee $89 i32.const 1240 call $~lib/string/String.__eq i32.eqz @@ -16404,7 +16445,7 @@ end i32.const 8 call $~lib/util/number/itoa32 - local.tee $87 + local.tee $88 i32.const 11616 call $~lib/string/String.__eq i32.eqz @@ -16418,7 +16459,7 @@ end i32.const 12 call $~lib/util/number/itoa32 - local.tee $89 + local.tee $90 i32.const 11640 call $~lib/string/String.__eq i32.eqz @@ -16432,7 +16473,7 @@ end i32.const 123 call $~lib/util/number/itoa32 - local.tee $90 + local.tee $91 i32.const 760 call $~lib/string/String.__eq i32.eqz @@ -16446,7 +16487,7 @@ end i32.const -1000 call $~lib/util/number/itoa32 - local.tee $91 + local.tee $92 i32.const 11664 call $~lib/string/String.__eq i32.eqz @@ -16460,7 +16501,7 @@ end i32.const 1234 call $~lib/util/number/itoa32 - local.tee $92 + local.tee $93 i32.const 11696 call $~lib/string/String.__eq i32.eqz @@ -16474,7 +16515,7 @@ end i32.const 12345 call $~lib/util/number/itoa32 - local.tee $93 + local.tee $94 i32.const 11720 call $~lib/string/String.__eq i32.eqz @@ -16488,7 +16529,7 @@ end i32.const 123456 call $~lib/util/number/itoa32 - local.tee $94 + local.tee $95 i32.const 11752 call $~lib/string/String.__eq i32.eqz @@ -16502,7 +16543,7 @@ end i32.const 1111111 call $~lib/util/number/itoa32 - local.tee $95 + local.tee $96 i32.const 11784 call $~lib/string/String.__eq i32.eqz @@ -16516,7 +16557,7 @@ end i32.const 1234567 call $~lib/util/number/itoa32 - local.tee $96 + local.tee $97 i32.const 11816 call $~lib/string/String.__eq i32.eqz @@ -16530,7 +16571,7 @@ end i32.const 12345678 call $~lib/util/number/itoa32 - local.tee $97 + local.tee $98 i32.const 11848 call $~lib/string/String.__eq i32.eqz @@ -16544,7 +16585,7 @@ end i32.const 123456789 call $~lib/util/number/itoa32 - local.tee $98 + local.tee $99 i32.const 11880 call $~lib/string/String.__eq i32.eqz @@ -16558,7 +16599,7 @@ end i32.const 2147483646 call $~lib/util/number/itoa32 - local.tee $99 + local.tee $100 i32.const 11920 call $~lib/string/String.__eq i32.eqz @@ -16572,7 +16613,7 @@ end i32.const 2147483647 call $~lib/util/number/itoa32 - local.tee $100 + local.tee $101 i32.const 11960 call $~lib/string/String.__eq i32.eqz @@ -16586,7 +16627,7 @@ end i32.const -2147483648 call $~lib/util/number/itoa32 - local.tee $101 + local.tee $102 i32.const 12000 call $~lib/string/String.__eq i32.eqz @@ -16600,7 +16641,7 @@ end i32.const -1 call $~lib/util/number/itoa32 - local.tee $102 + local.tee $103 i32.const 12040 call $~lib/string/String.__eq i32.eqz @@ -16614,7 +16655,7 @@ end i32.const 0 call $~lib/util/number/utoa32 - local.tee $103 + local.tee $104 i32.const 1192 call $~lib/string/String.__eq i32.eqz @@ -16628,7 +16669,7 @@ end i32.const 1000 call $~lib/util/number/utoa32 - local.tee $104 + local.tee $105 i32.const 12064 call $~lib/string/String.__eq i32.eqz @@ -16642,7 +16683,7 @@ end i32.const 2147483647 call $~lib/util/number/utoa32 - local.tee $105 + local.tee $106 i32.const 11960 call $~lib/string/String.__eq i32.eqz @@ -16656,7 +16697,7 @@ end i32.const -2147483648 call $~lib/util/number/utoa32 - local.tee $106 + local.tee $107 i32.const 12088 call $~lib/string/String.__eq i32.eqz @@ -16670,7 +16711,7 @@ end i32.const -1 call $~lib/util/number/utoa32 - local.tee $107 + local.tee $108 i32.const 12128 call $~lib/string/String.__eq i32.eqz @@ -16684,7 +16725,7 @@ end i64.const 0 call $~lib/util/number/utoa64 - local.tee $108 + local.tee $109 i32.const 1192 call $~lib/string/String.__eq i32.eqz @@ -16698,7 +16739,7 @@ end i64.const 12 call $~lib/util/number/utoa64 - local.tee $109 + local.tee $110 i32.const 11640 call $~lib/string/String.__eq i32.eqz @@ -16712,7 +16753,7 @@ end i64.const 123 call $~lib/util/number/utoa64 - local.tee $110 + local.tee $111 i32.const 760 call $~lib/string/String.__eq i32.eqz @@ -16726,7 +16767,7 @@ end i64.const 1234 call $~lib/util/number/utoa64 - local.tee $111 + local.tee $112 i32.const 11696 call $~lib/string/String.__eq i32.eqz @@ -16740,7 +16781,7 @@ end i64.const 12345 call $~lib/util/number/utoa64 - local.tee $112 + local.tee $113 i32.const 11720 call $~lib/string/String.__eq i32.eqz @@ -16754,7 +16795,7 @@ end i64.const 123456 call $~lib/util/number/utoa64 - local.tee $113 + local.tee $114 i32.const 11752 call $~lib/string/String.__eq i32.eqz @@ -16768,7 +16809,7 @@ end i64.const 1234567 call $~lib/util/number/utoa64 - local.tee $114 + local.tee $115 i32.const 11816 call $~lib/string/String.__eq i32.eqz @@ -16782,7 +16823,7 @@ end i64.const 99999999 call $~lib/util/number/utoa64 - local.tee $115 + local.tee $116 i32.const 12168 call $~lib/string/String.__eq i32.eqz @@ -16796,7 +16837,7 @@ end i64.const 100000000 call $~lib/util/number/utoa64 - local.tee $116 + local.tee $117 i32.const 12200 call $~lib/string/String.__eq i32.eqz @@ -16810,7 +16851,7 @@ end i64.const 4294967295 call $~lib/util/number/utoa64 - local.tee $117 + local.tee $118 i32.const 12128 call $~lib/string/String.__eq i32.eqz @@ -16824,7 +16865,7 @@ end i64.const 4294967297 call $~lib/util/number/utoa64 - local.tee $118 + local.tee $119 i32.const 12240 call $~lib/string/String.__eq i32.eqz @@ -16838,7 +16879,7 @@ end i64.const 68719476735 call $~lib/util/number/utoa64 - local.tee $119 + local.tee $120 i32.const 12280 call $~lib/string/String.__eq i32.eqz @@ -16852,7 +16893,7 @@ end i64.const 868719476735 call $~lib/util/number/utoa64 - local.tee $120 + local.tee $121 i32.const 12320 call $~lib/string/String.__eq i32.eqz @@ -16866,7 +16907,7 @@ end i64.const 8687194767350 call $~lib/util/number/utoa64 - local.tee $121 + local.tee $122 i32.const 12360 call $~lib/string/String.__eq i32.eqz @@ -16880,7 +16921,7 @@ end i64.const 86871947673501 call $~lib/util/number/utoa64 - local.tee $122 + local.tee $123 i32.const 12408 call $~lib/string/String.__eq i32.eqz @@ -16894,7 +16935,7 @@ end i64.const 999868719476735 call $~lib/util/number/utoa64 - local.tee $123 + local.tee $124 i32.const 12456 call $~lib/string/String.__eq i32.eqz @@ -16908,7 +16949,7 @@ end i64.const 9999868719476735 call $~lib/util/number/utoa64 - local.tee $124 + local.tee $125 i32.const 12504 call $~lib/string/String.__eq i32.eqz @@ -16922,7 +16963,7 @@ end i64.const 19999868719476735 call $~lib/util/number/utoa64 - local.tee $125 + local.tee $126 i32.const 12552 call $~lib/string/String.__eq i32.eqz @@ -16936,7 +16977,7 @@ end i64.const 129999868719476735 call $~lib/util/number/utoa64 - local.tee $126 + local.tee $127 i32.const 12608 call $~lib/string/String.__eq i32.eqz @@ -16950,7 +16991,7 @@ end i64.const 1239999868719476735 call $~lib/util/number/utoa64 - local.tee $127 + local.tee $128 i32.const 12664 call $~lib/string/String.__eq i32.eqz @@ -16964,7 +17005,7 @@ end i64.const -1 call $~lib/util/number/utoa64 - local.tee $128 + local.tee $129 i32.const 12720 call $~lib/string/String.__eq i32.eqz @@ -16978,7 +17019,7 @@ end i64.const 0 call $~lib/util/number/itoa64 - local.tee $129 + local.tee $130 i32.const 1192 call $~lib/string/String.__eq i32.eqz @@ -16992,7 +17033,7 @@ end i64.const -1234 call $~lib/util/number/itoa64 - local.tee $130 + local.tee $131 i32.const 12776 call $~lib/string/String.__eq i32.eqz @@ -17006,7 +17047,7 @@ end i64.const 4294967295 call $~lib/util/number/itoa64 - local.tee $131 + local.tee $132 i32.const 12128 call $~lib/string/String.__eq i32.eqz @@ -17020,7 +17061,7 @@ end i64.const 4294967297 call $~lib/util/number/itoa64 - local.tee $132 + local.tee $133 i32.const 12240 call $~lib/string/String.__eq i32.eqz @@ -17034,7 +17075,7 @@ end i64.const -4294967295 call $~lib/util/number/itoa64 - local.tee $133 + local.tee $134 i32.const 12808 call $~lib/string/String.__eq i32.eqz @@ -17048,7 +17089,7 @@ end i64.const 68719476735 call $~lib/util/number/itoa64 - local.tee $134 + local.tee $135 i32.const 12280 call $~lib/string/String.__eq i32.eqz @@ -17062,7 +17103,7 @@ end i64.const -68719476735 call $~lib/util/number/itoa64 - local.tee $135 + local.tee $136 i32.const 12848 call $~lib/string/String.__eq i32.eqz @@ -17076,7 +17117,7 @@ end i64.const -868719476735 call $~lib/util/number/itoa64 - local.tee $136 + local.tee $137 i32.const 12888 call $~lib/string/String.__eq i32.eqz @@ -17090,7 +17131,7 @@ end i64.const -999868719476735 call $~lib/util/number/itoa64 - local.tee $137 + local.tee $138 i32.const 12936 call $~lib/string/String.__eq i32.eqz @@ -17104,7 +17145,7 @@ end i64.const -19999868719476735 call $~lib/util/number/itoa64 - local.tee $138 + local.tee $139 i32.const 12984 call $~lib/string/String.__eq i32.eqz @@ -17118,7 +17159,7 @@ end i64.const 9223372036854775807 call $~lib/util/number/itoa64 - local.tee $139 + local.tee $140 i32.const 13040 call $~lib/string/String.__eq i32.eqz @@ -17132,7 +17173,7 @@ end i64.const -9223372036854775808 call $~lib/util/number/itoa64 - local.tee $140 + local.tee $141 i32.const 13096 call $~lib/string/String.__eq i32.eqz @@ -17146,7 +17187,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $141 + local.tee $142 i32.const 13152 call $~lib/string/String.__eq i32.eqz @@ -17160,7 +17201,7 @@ end f64.const -0 call $~lib/util/number/dtoa - local.tee $142 + local.tee $143 i32.const 13152 call $~lib/string/String.__eq i32.eqz @@ -17174,7 +17215,7 @@ end f64.const nan:0x8000000000000 call $~lib/util/number/dtoa - local.tee $143 + local.tee $144 i32.const 4344 call $~lib/string/String.__eq i32.eqz @@ -17188,7 +17229,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $144 + local.tee $145 i32.const 13176 call $~lib/string/String.__eq i32.eqz @@ -17202,7 +17243,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $145 + local.tee $146 i32.const 5224 call $~lib/string/String.__eq i32.eqz @@ -17216,7 +17257,7 @@ end f64.const 2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $146 + local.tee $147 i32.const 4552 call $~lib/string/String.__eq i32.eqz @@ -17230,7 +17271,7 @@ end f64.const -2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $147 + local.tee $148 i32.const 14264 call $~lib/string/String.__eq i32.eqz @@ -17244,7 +17285,7 @@ end f64.const 1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $148 + local.tee $149 i32.const 4616 call $~lib/string/String.__eq i32.eqz @@ -17258,7 +17299,7 @@ end f64.const -1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $149 + local.tee $150 i32.const 14328 call $~lib/string/String.__eq i32.eqz @@ -17272,7 +17313,7 @@ end f64.const 4185580496821356722454785e274 call $~lib/util/number/dtoa - local.tee $150 + local.tee $151 i32.const 14392 call $~lib/string/String.__eq i32.eqz @@ -17286,7 +17327,7 @@ end f64.const 2.2250738585072014e-308 call $~lib/util/number/dtoa - local.tee $151 + local.tee $152 i32.const 14456 call $~lib/string/String.__eq i32.eqz @@ -17300,7 +17341,7 @@ end f64.const 4.940656e-318 call $~lib/util/number/dtoa - local.tee $152 + local.tee $153 i32.const 14520 call $~lib/string/String.__eq i32.eqz @@ -17314,7 +17355,7 @@ end f64.const 9060801153433600 call $~lib/util/number/dtoa - local.tee $153 + local.tee $154 i32.const 14568 call $~lib/string/String.__eq i32.eqz @@ -17328,7 +17369,7 @@ end f64.const 4708356024711512064 call $~lib/util/number/dtoa - local.tee $154 + local.tee $155 i32.const 14624 call $~lib/string/String.__eq i32.eqz @@ -17342,7 +17383,7 @@ end f64.const 9409340012568248320 call $~lib/util/number/dtoa - local.tee $155 + local.tee $156 i32.const 14688 call $~lib/string/String.__eq i32.eqz @@ -17356,7 +17397,7 @@ end f64.const 5e-324 call $~lib/util/number/dtoa - local.tee $156 + local.tee $157 i32.const 4680 call $~lib/string/String.__eq i32.eqz @@ -17370,7 +17411,7 @@ end f64.const 1 call $~lib/util/number/dtoa - local.tee $157 + local.tee $158 i32.const 14752 call $~lib/string/String.__eq i32.eqz @@ -17384,7 +17425,7 @@ end f64.const 0.1 call $~lib/util/number/dtoa - local.tee $158 + local.tee $159 i32.const 2352 call $~lib/string/String.__eq i32.eqz @@ -17398,7 +17439,7 @@ end f64.const -1 call $~lib/util/number/dtoa - local.tee $159 + local.tee $160 i32.const 14776 call $~lib/string/String.__eq i32.eqz @@ -17412,7 +17453,7 @@ end f64.const -0.1 call $~lib/util/number/dtoa - local.tee $160 + local.tee $161 i32.const 14800 call $~lib/string/String.__eq i32.eqz @@ -17426,7 +17467,7 @@ end f64.const 1e6 call $~lib/util/number/dtoa - local.tee $161 + local.tee $162 i32.const 14824 call $~lib/string/String.__eq i32.eqz @@ -17440,7 +17481,7 @@ end f64.const 1e-06 call $~lib/util/number/dtoa - local.tee $162 + local.tee $163 i32.const 14864 call $~lib/string/String.__eq i32.eqz @@ -17454,7 +17495,7 @@ end f64.const -1e6 call $~lib/util/number/dtoa - local.tee $163 + local.tee $164 i32.const 14896 call $~lib/string/String.__eq i32.eqz @@ -17468,7 +17509,7 @@ end f64.const -1e-06 call $~lib/util/number/dtoa - local.tee $164 + local.tee $165 i32.const 14936 call $~lib/string/String.__eq i32.eqz @@ -17482,7 +17523,7 @@ end f64.const 1e7 call $~lib/util/number/dtoa - local.tee $165 + local.tee $166 i32.const 14976 call $~lib/string/String.__eq i32.eqz @@ -17496,7 +17537,7 @@ end f64.const 1e-07 call $~lib/util/number/dtoa - local.tee $166 + local.tee $167 i32.const 15016 call $~lib/string/String.__eq i32.eqz @@ -17510,7 +17551,7 @@ end f64.const 1.e+308 call $~lib/util/number/dtoa - local.tee $167 + local.tee $168 i32.const 2528 call $~lib/string/String.__eq i32.eqz @@ -17524,7 +17565,7 @@ end f64.const -1.e+308 call $~lib/util/number/dtoa - local.tee $168 + local.tee $169 i32.const 15040 call $~lib/string/String.__eq i32.eqz @@ -17538,7 +17579,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $169 + local.tee $170 i32.const 13176 call $~lib/string/String.__eq i32.eqz @@ -17552,7 +17593,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $170 + local.tee $171 i32.const 5224 call $~lib/string/String.__eq i32.eqz @@ -17566,7 +17607,7 @@ end f64.const 1e-308 call $~lib/util/number/dtoa - local.tee $171 + local.tee $172 i32.const 15072 call $~lib/string/String.__eq i32.eqz @@ -17580,7 +17621,7 @@ end f64.const -1e-308 call $~lib/util/number/dtoa - local.tee $172 + local.tee $173 i32.const 15104 call $~lib/string/String.__eq i32.eqz @@ -17594,7 +17635,7 @@ end f64.const 1e-323 call $~lib/util/number/dtoa - local.tee $173 + local.tee $174 i32.const 15136 call $~lib/string/String.__eq i32.eqz @@ -17608,7 +17649,7 @@ end f64.const -1e-323 call $~lib/util/number/dtoa - local.tee $174 + local.tee $175 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -17622,7 +17663,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $175 + local.tee $176 i32.const 13152 call $~lib/string/String.__eq i32.eqz @@ -17636,7 +17677,7 @@ end f64.const 4294967272 call $~lib/util/number/dtoa - local.tee $176 + local.tee $177 i32.const 15200 call $~lib/string/String.__eq i32.eqz @@ -17650,7 +17691,7 @@ end f64.const 1.2312145673456234e-08 call $~lib/util/number/dtoa - local.tee $177 + local.tee $178 i32.const 15240 call $~lib/string/String.__eq i32.eqz @@ -17664,7 +17705,7 @@ end f64.const 555555555.5555556 call $~lib/util/number/dtoa - local.tee $178 + local.tee $179 i32.const 15304 call $~lib/string/String.__eq i32.eqz @@ -17678,7 +17719,7 @@ end f64.const 0.9999999999999999 call $~lib/util/number/dtoa - local.tee $179 + local.tee $180 i32.const 15360 call $~lib/string/String.__eq i32.eqz @@ -17692,7 +17733,7 @@ end f64.const 1 call $~lib/util/number/dtoa - local.tee $180 + local.tee $181 i32.const 14752 call $~lib/string/String.__eq i32.eqz @@ -17706,7 +17747,7 @@ end f64.const 12.34 call $~lib/util/number/dtoa - local.tee $181 + local.tee $182 i32.const 15416 call $~lib/string/String.__eq i32.eqz @@ -17720,7 +17761,7 @@ end f64.const 0.3333333333333333 call $~lib/util/number/dtoa - local.tee $182 + local.tee $183 i32.const 15448 call $~lib/string/String.__eq i32.eqz @@ -17734,7 +17775,7 @@ end f64.const 1234e17 call $~lib/util/number/dtoa - local.tee $183 + local.tee $184 i32.const 15504 call $~lib/string/String.__eq i32.eqz @@ -17748,7 +17789,7 @@ end f64.const 1234e18 call $~lib/util/number/dtoa - local.tee $184 + local.tee $185 i32.const 15568 call $~lib/string/String.__eq i32.eqz @@ -17762,7 +17803,7 @@ end f64.const 2.71828 call $~lib/util/number/dtoa - local.tee $185 + local.tee $186 i32.const 15608 call $~lib/string/String.__eq i32.eqz @@ -17776,7 +17817,7 @@ end f64.const 0.0271828 call $~lib/util/number/dtoa - local.tee $186 + local.tee $187 i32.const 15640 call $~lib/string/String.__eq i32.eqz @@ -17790,7 +17831,7 @@ end f64.const 271.828 call $~lib/util/number/dtoa - local.tee $187 + local.tee $188 i32.const 15680 call $~lib/string/String.__eq i32.eqz @@ -17804,7 +17845,7 @@ end f64.const 1.1e+128 call $~lib/util/number/dtoa - local.tee $188 + local.tee $189 i32.const 15712 call $~lib/string/String.__eq i32.eqz @@ -17818,7 +17859,7 @@ end f64.const 1.1e-64 call $~lib/util/number/dtoa - local.tee $189 + local.tee $190 i32.const 15744 call $~lib/string/String.__eq i32.eqz @@ -17832,7 +17873,7 @@ end f64.const 0.000035689 call $~lib/util/number/dtoa - local.tee $190 + local.tee $191 i32.const 15776 call $~lib/string/String.__eq i32.eqz @@ -17910,8 +17951,6 @@ call $~lib/rt/pure/__release local.get $31 call $~lib/rt/pure/__release - local.get $32 - call $~lib/rt/pure/__release local.get $33 call $~lib/rt/pure/__release local.get $34 @@ -18228,12 +18267,14 @@ call $~lib/rt/pure/__release local.get $190 call $~lib/rt/pure/__release + local.get $191 + call $~lib/rt/pure/__release ) - (func $std/string/getString (; 101 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 99 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $start (; 102 ;) (type $FUNCSIG$v) + (func $start (; 100 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -18243,10 +18284,10 @@ end call $start:std/string ) - (func $~lib/array/Array#__visit_impl (; 103 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 101 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 104 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 102 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -18376,7 +18417,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 105 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 103 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18415,19 +18456,19 @@ unreachable end ) - (func $~lib/array/Array#__visit_impl (; 106 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 104 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 107 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 105 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 108 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 106 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 109 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 107 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/__visit_members (; 110 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 108 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default @@ -18491,6 +18532,6 @@ end return ) - (func $null (; 111 ;) (type $FUNCSIG$v) + (func $null (; 109 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 5a8f97eb15..b4277d4598 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -24,8 +24,6 @@ (type $FUNCSIG$ijii (func (param i64 i32 i32) (result i32))) (type $FUNCSIG$ifii (func (param f32 i32 i32) (result i32))) (type $FUNCSIG$idii (func (param f64 i32 i32) (result i32))) - (type $FUNCSIG$if (func (param f32) (result i32))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$vjii (func (param i64 i32 i32))) (type $FUNCSIG$vfii (func (param f32 i32 i32))) (type $FUNCSIG$vdii (func (param f64 i32 i32))) @@ -35,6 +33,7 @@ (type $FUNCSIG$ij (func (param i64) (result i32))) (type $FUNCSIG$viji (func (param i32 i64 i32))) (type $FUNCSIG$iiij (func (param i32 i32 i64) (result i32))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $FUNCSIG$iiid (func (param i32 i32 f64) (result i32))) @@ -12783,12 +12782,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/number/isNaN (; 265 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/math/NativeMathf.mod (; 266 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 265 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12805,15 +12799,12 @@ i32.const -2147483648 i32.and local.set $4 + i32.const 1 + i32.const 0 local.get $2 i32.const 255 i32.eq - if (result i32) - i32.const 1 - else - f32.const 2 - call $~lib/number/isNaN - end + select if local.get $0 f32.const 2 @@ -12939,7 +12930,7 @@ local.get $0 f32.mul ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 267 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 266 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -12950,7 +12941,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#every (; 268 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (; 267 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13002,7 +12993,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 269 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 268 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -13049,12 +13040,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/number/isNaN (; 270 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/math/NativeMath.mod (; 271 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 269 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -13071,15 +13057,12 @@ i64.const 63 i64.shr_u local.set $4 + i32.const 1 + i32.const 0 local.get $2 i64.const 2047 i64.eq - if (result i32) - i32.const 1 - else - f64.const 2 - call $~lib/number/isNaN - end + select if local.get $0 f64.const 2 @@ -13105,7 +13088,8 @@ return end local.get $2 - i64.eqz + i64.const 0 + i64.eq if (result i64) local.get $1 i64.const 0 @@ -13212,7 +13196,7 @@ local.get $0 f64.mul ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 272 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 270 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -13223,7 +13207,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#every (; 273 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (; 271 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13275,7 +13259,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 274 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 272 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -13322,7 +13306,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 275 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 273 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -13372,7 +13356,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#forEach (; 276 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Int8Array#forEach (; 274 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13410,7 +13394,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 277 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 275 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -13469,7 +13453,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#forEach (; 278 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (; 276 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13508,7 +13492,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 279 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 277 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -13562,7 +13546,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 280 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 278 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -13616,7 +13600,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 281 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 279 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -13666,7 +13650,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#forEach (; 282 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Int16Array#forEach (; 280 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13706,7 +13690,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 283 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 281 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -13765,7 +13749,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#forEach (; 284 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Uint16Array#forEach (; 282 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13805,7 +13789,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 285 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 283 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -13858,7 +13842,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 286 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 284 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -13904,7 +13888,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#forEach (; 287 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (; 285 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13946,7 +13930,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 288 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 286 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -13994,7 +13978,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 289 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 287 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -14042,7 +14026,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 290 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 288 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -14089,7 +14073,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#forEach (; 291 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (; 289 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14131,7 +14115,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 292 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 290 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -14182,7 +14166,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 293 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 291 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -14233,7 +14217,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 294 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 292 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -14280,7 +14264,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#forEach (; 295 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Float32Array#forEach (; 293 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14320,7 +14304,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 296 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 294 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -14370,7 +14354,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 297 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 295 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -14417,7 +14401,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#forEach (; 298 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Float64Array#forEach (; 296 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14457,7 +14441,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 299 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 297 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -14507,7 +14491,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#reverse (; 300 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (; 298 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14559,7 +14543,7 @@ end local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 301 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 299 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14728,7 +14712,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#reverse (; 302 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (; 300 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14780,7 +14764,7 @@ end local.get $3 ) - (func $~lib/typedarray/Uint8Array#subarray (; 303 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#subarray (; 301 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 @@ -14845,7 +14829,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 304 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 302 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15007,7 +14991,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (; 305 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (; 303 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 @@ -15072,7 +15056,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 306 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 304 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15234,7 +15218,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#reverse (; 307 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (; 305 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15291,7 +15275,7 @@ end local.get $3 ) - (func $~lib/typedarray/Int16Array#subarray (; 308 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (; 306 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 @@ -15360,7 +15344,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 309 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 307 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15528,7 +15512,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#reverse (; 310 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (; 308 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15585,7 +15569,7 @@ end local.get $3 ) - (func $~lib/typedarray/Uint16Array#subarray (; 311 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#subarray (; 309 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 @@ -15654,7 +15638,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 312 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 310 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15816,7 +15800,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#reverse (; 313 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (; 311 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15873,7 +15857,7 @@ end local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 314 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 312 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16030,7 +16014,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#subarray (; 315 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#subarray (; 313 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 @@ -16099,7 +16083,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 316 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 314 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16255,7 +16239,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#reverse (; 317 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (; 315 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16312,7 +16296,7 @@ end local.get $3 ) - (func $~lib/typedarray/Int64Array#subarray (; 318 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (; 316 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 @@ -16381,7 +16365,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 319 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 317 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16540,7 +16524,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#subarray (; 320 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#subarray (; 318 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 @@ -16609,7 +16593,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 321 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 319 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16768,7 +16752,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#reverse (; 322 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (; 320 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16825,7 +16809,7 @@ end local.get $3 ) - (func $~lib/typedarray/Float32Array#subarray (; 323 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (; 321 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 @@ -16894,7 +16878,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 324 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 322 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -17053,7 +17037,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#reverse (; 325 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (; 323 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -17110,7 +17094,7 @@ end local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 326 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 324 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -17270,7 +17254,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#indexOf (; 327 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#indexOf (; 325 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 @@ -17345,7 +17329,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int8Array#lastIndexOf (; 328 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#lastIndexOf (; 326 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 local.get $0 @@ -17414,7 +17398,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int8Array#lastIndexOf|trampoline (; 329 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#lastIndexOf|trampoline (; 327 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) block $1of1 block $0of1 @@ -17435,7 +17419,7 @@ local.get $2 call $~lib/typedarray/Int8Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> (; 330 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> (; 328 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -17863,7 +17847,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> (; 331 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> (; 329 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18288,7 +18272,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> (; 332 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> (; 330 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18713,7 +18697,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#indexOf (; 333 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#indexOf (; 331 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 @@ -18790,7 +18774,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int16Array#lastIndexOf (; 334 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#lastIndexOf (; 332 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $0 @@ -18861,7 +18845,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int16Array#lastIndexOf|trampoline (; 335 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#lastIndexOf|trampoline (; 333 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) block $1of1 block $0of1 @@ -18882,7 +18866,7 @@ local.get $2 call $~lib/typedarray/Int16Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> (; 336 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> (; 334 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -19309,7 +19293,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> (; 337 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> (; 335 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -19734,7 +19718,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#indexOf (; 338 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#indexOf (; 336 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 @@ -19809,7 +19793,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int32Array#lastIndexOf (; 339 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#lastIndexOf (; 337 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 local.get $0 @@ -19878,7 +19862,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int32Array#lastIndexOf|trampoline (; 340 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#lastIndexOf|trampoline (; 338 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) block $1of1 block $0of1 @@ -19899,7 +19883,7 @@ local.get $2 call $~lib/typedarray/Int32Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> (; 341 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> (; 339 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -20323,7 +20307,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> (; 342 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> (; 340 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -20746,7 +20730,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#indexOf (; 343 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#indexOf (; 341 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 @@ -20821,7 +20805,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int64Array#lastIndexOf (; 344 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#lastIndexOf (; 342 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 local.get $0 @@ -20890,7 +20874,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int64Array#lastIndexOf|trampoline (; 345 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/typedarray/Int64Array#lastIndexOf|trampoline (; 343 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i32) block $1of1 block $0of1 @@ -20911,7 +20895,7 @@ local.get $2 call $~lib/typedarray/Int64Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> (; 346 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> (; 344 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -21335,7 +21319,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> (; 347 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> (; 345 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -21759,7 +21743,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#indexOf (; 348 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#indexOf (; 346 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 @@ -21834,7 +21818,7 @@ end local.get $2 ) - (func $~lib/typedarray/Float32Array#lastIndexOf (; 349 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf (; 347 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $0 @@ -21903,7 +21887,7 @@ end local.get $2 ) - (func $~lib/typedarray/Float32Array#lastIndexOf|trampoline (; 350 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf|trampoline (; 348 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 i32) block $1of1 block $0of1 @@ -21924,7 +21908,7 @@ local.get $2 call $~lib/typedarray/Float32Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> (; 351 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> (; 349 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -22348,7 +22332,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#indexOf (; 352 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#indexOf (; 350 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 @@ -22423,7 +22407,7 @@ end local.get $2 ) - (func $~lib/typedarray/Float64Array#lastIndexOf (; 353 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#lastIndexOf (; 351 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $0 @@ -22492,7 +22476,7 @@ end local.get $2 ) - (func $~lib/typedarray/Float64Array#lastIndexOf|trampoline (; 354 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/typedarray/Float64Array#lastIndexOf|trampoline (; 352 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) block $1of1 block $0of1 @@ -22513,7 +22497,7 @@ local.get $2 call $~lib/typedarray/Float64Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> (; 355 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> (; 353 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -22938,11 +22922,11 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#includes (; 356 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#includes (; 354 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f64) + (local $3 f64) + (local $4 i32) block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -22964,7 +22948,7 @@ end local.get $0 i32.load offset=4 - local.set $3 + local.set $4 loop $continue|0 local.get $1 local.get $2 @@ -22973,20 +22957,18 @@ local.get $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load - local.tee $4 + local.tee $3 f64.const nan:0x8000000000000 f64.eq if (result i32) i32.const 1 else - local.get $4 - call $~lib/number/isNaN - f64.const nan:0x8000000000000 - call $~lib/number/isNaN - i32.and + local.get $3 + local.get $3 + f64.ne end if local.get $0 @@ -23008,11 +22990,11 @@ i32.const 0 end ) - (func $~lib/typedarray/Float32Array#includes (; 357 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#includes (; 355 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f32) + (local $3 f32) + (local $4 i32) block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -23034,7 +23016,7 @@ end local.get $0 i32.load offset=4 - local.set $3 + local.set $4 loop $continue|0 local.get $1 local.get $2 @@ -23043,20 +23025,18 @@ local.get $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load - local.tee $4 + local.tee $3 f32.const nan:0x400000 f32.eq if (result i32) i32.const 1 else - local.get $4 - call $~lib/number/isNaN - f32.const nan:0x400000 - call $~lib/number/isNaN - i32.and + local.get $3 + local.get $3 + f32.ne end if local.get $0 @@ -23078,7 +23058,7 @@ i32.const 0 end ) - (func $~lib/util/number/decimalCount32 (; 358 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 356 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 2 local.get $0 @@ -23126,7 +23106,7 @@ i32.lt_u select ) - (func $~lib/util/number/utoa_simple (; 359 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 357 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -23153,7 +23133,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/itoa32 (; 360 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 358 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -23196,7 +23176,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#get:length (; 361 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 359 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -23204,7 +23184,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/number/itoa_stream (; 362 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 360 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -23259,7 +23239,7 @@ end local.get $2 ) - (func $~lib/string/String#substring (; 363 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 361 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 0 @@ -23336,7 +23316,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/string/joinIntegerArray (; 364 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 362 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23455,7 +23435,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Int8Array#join (; 365 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#join (; 363 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -23467,7 +23447,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $~lib/util/string/compareImpl (; 366 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 364 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -23565,7 +23545,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__eq (; 367 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 365 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -23619,7 +23599,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> (; 368 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> (; 366 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -23686,7 +23666,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/number/utoa32 (; 369 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 367 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -23710,7 +23690,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 370 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 368 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -23740,7 +23720,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 371 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 369 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23859,7 +23839,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint8Array#join (; 372 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#join (; 370 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -23871,7 +23851,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> (; 373 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> (; 371 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -23938,7 +23918,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> (; 374 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> (; 372 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24005,7 +23985,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa_stream (; 375 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 373 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -24060,7 +24040,7 @@ end local.get $2 ) - (func $~lib/util/string/joinIntegerArray (; 376 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 374 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24183,7 +24163,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Int16Array#join (; 377 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#join (; 375 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -24195,7 +24175,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> (; 378 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> (; 376 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24262,7 +24242,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa_stream (; 379 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 377 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -24292,7 +24272,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 380 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 378 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24415,7 +24395,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint16Array#join (; 381 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#join (; 379 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -24427,7 +24407,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> (; 382 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> (; 380 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24494,7 +24474,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa_stream (; 383 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 381 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -24536,7 +24516,7 @@ end local.get $2 ) - (func $~lib/util/string/joinIntegerArray (; 384 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 382 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24659,7 +24639,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Int32Array#join (; 385 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#join (; 383 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -24671,7 +24651,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> (; 386 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> (; 384 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24738,7 +24718,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa_stream (; 387 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 385 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -24762,7 +24742,7 @@ call $~lib/util/number/utoa_simple local.get $0 ) - (func $~lib/util/string/joinIntegerArray (; 388 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 386 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24885,7 +24865,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint32Array#join (; 389 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#join (; 387 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -24897,7 +24877,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> (; 390 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> (; 388 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24964,7 +24944,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/number/decimalCount64 (; 391 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 389 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) i32.const 10 i32.const 11 i32.const 12 @@ -25017,7 +24997,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 392 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 390 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -25047,13 +25027,14 @@ br_if $continue|0 end ) - (func $~lib/util/number/itoa64 (; 393 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 391 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) local.get $0 - i64.eqz + i64.const 0 + i64.eq if i32.const 1720 call $~lib/rt/pure/__retain @@ -25112,7 +25093,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 394 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 392 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -25122,7 +25103,8 @@ i32.add local.set $0 local.get $2 - i64.eqz + i64.const 0 + i64.eq if local.get $0 i32.const 48 @@ -25173,7 +25155,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 395 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 393 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -25296,7 +25278,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Int64Array#join (; 396 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#join (; 394 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -25308,7 +25290,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> (; 397 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> (; 395 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -25375,12 +25357,13 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/number/utoa64 (; 398 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 396 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) local.get $0 - i64.eqz + i64.const 0 + i64.eq if i32.const 1720 call $~lib/rt/pure/__retain @@ -25419,7 +25402,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 399 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 397 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -25428,7 +25411,8 @@ i32.add local.set $0 local.get $2 - i64.eqz + i64.const 0 + i64.eq if local.get $0 i32.const 48 @@ -25459,7 +25443,7 @@ end local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 400 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 398 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -25582,7 +25566,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint64Array#join (; 401 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#join (; 399 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -25594,7 +25578,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> (; 402 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> (; 400 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -25661,14 +25645,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/number/isFinite (; 403 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/util/number/genDigits (; 404 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 401 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i64) @@ -26067,7 +26044,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 405 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 402 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -26314,7 +26291,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 406 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 403 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -26602,7 +26579,7 @@ local.get $10 i32.add ) - (func $~lib/util/number/dtoa (; 407 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 404 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -26614,11 +26591,14 @@ return end local.get $0 - call $~lib/number/isFinite - i32.eqz + local.get $0 + f64.sub + f64.const 0 + f64.ne if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 1832 call $~lib/rt/pure/__retain @@ -26653,7 +26633,7 @@ local.get $1 call $~lib/rt/tlsf/__free ) - (func $~lib/util/number/dtoa_stream (; 408 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 405 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -26678,11 +26658,14 @@ return end local.get $2 - call $~lib/number/isFinite - i32.eqz + local.get $2 + f64.sub + f64.const 0 + f64.ne if local.get $2 - call $~lib/number/isNaN + local.get $2 + f64.ne if local.get $0 i32.const 78 @@ -26721,7 +26704,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/util/string/joinFloatArray (; 409 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinFloatArray (; 406 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -26847,7 +26830,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Float32Array#join (; 410 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#join (; 407 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -26859,7 +26842,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> (; 411 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> (; 408 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -26926,7 +26909,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/string/joinFloatArray (; 412 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinFloatArray (; 409 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -27049,7 +27032,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Float64Array#join (; 413 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#join (; 410 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1744 call $~lib/rt/pure/__retain drop @@ -27061,7 +27044,7 @@ i32.const 1744 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> (; 414 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> (; 411 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -27128,13 +27111,13 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 415 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 412 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 ) - (func $~lib/arraybuffer/ArrayBuffer#slice (; 416 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#slice (; 413 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -27202,7 +27185,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/typedarray/Int8Array.wrap (; 417 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array.wrap (; 414 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -27295,7 +27278,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> (; 418 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> (; 415 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -27405,7 +27388,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array.wrap (; 419 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array.wrap (; 416 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -27498,7 +27481,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> (; 420 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> (; 417 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -27606,7 +27589,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray.wrap (; 421 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray.wrap (; 418 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -27699,7 +27682,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> (; 422 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> (; 419 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -27807,7 +27790,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array.wrap (; 423 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array.wrap (; 420 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -27903,7 +27886,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> (; 424 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> (; 421 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -28013,7 +27996,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array.wrap (; 425 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array.wrap (; 422 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -28109,7 +28092,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> (; 426 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> (; 423 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -28217,7 +28200,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array.wrap (; 427 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array.wrap (; 424 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -28313,7 +28296,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> (; 428 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> (; 425 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -28419,7 +28402,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array.wrap (; 429 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array.wrap (; 426 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -28515,7 +28498,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> (; 430 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> (; 427 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -28621,7 +28604,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array.wrap (; 431 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array.wrap (; 428 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -28717,7 +28700,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> (; 432 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> (; 429 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -28824,7 +28807,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array.wrap (; 433 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array.wrap (; 430 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -28920,7 +28903,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> (; 434 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> (; 431 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -29027,7 +29010,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array.wrap (; 435 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array.wrap (; 432 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -29123,7 +29106,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> (; 436 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> (; 433 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -29228,7 +29211,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array.wrap (; 437 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array.wrap (; 434 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -29324,7 +29307,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> (; 438 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> (; 435 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -29429,7 +29412,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/typedarray (; 439 ;) (type $FUNCSIG$v) + (func $start:std/typedarray (; 436 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -31330,7 +31313,7 @@ call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> ) - (func $start (; 440 ;) (type $FUNCSIG$v) + (func $start (; 437 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -31340,7 +31323,7 @@ end call $start:std/typedarray ) - (func $~lib/rt/pure/__visit (; 441 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 438 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 3276 i32.lt_u @@ -31450,7 +31433,7 @@ unreachable end ) - (func $~lib/rt/__visit_members (; 442 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 439 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$2 @@ -31473,7 +31456,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 443 ;) (type $FUNCSIG$v) + (func $null (; 440 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index ef3c3e652c..2adda9e55a 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -28,9 +28,7 @@ (type $FUNCSIG$ifii (func (param f32 i32 i32) (result i32))) (type $FUNCSIG$idii (func (param f64 i32 i32) (result i32))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) - (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$ddd (func (param f64 f64) (result f64))) - (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$vjii (func (param i64 i32 i32))) (type $FUNCSIG$vfii (func (param f32 i32 i32))) (type $FUNCSIG$vdii (func (param f64 i32 i32))) @@ -41,6 +39,7 @@ (type $FUNCSIG$ij (func (param i64) (result i32))) (type $FUNCSIG$viji (func (param i32 i64 i32))) (type $FUNCSIG$iiij (func (param i32 i32 i64) (result i32))) + (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $FUNCSIG$iiid (func (param i32 i32 f64) (result i32))) @@ -13762,8 +13761,6 @@ call $~lib/typedarray/Int8Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -13916,8 +13913,6 @@ call $~lib/typedarray/Uint8Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -14070,8 +14065,6 @@ call $~lib/typedarray/Uint8ClampedArray#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -14228,8 +14221,6 @@ call $~lib/typedarray/Int16Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -14382,8 +14373,6 @@ call $~lib/typedarray/Uint16Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -14532,8 +14521,6 @@ call $~lib/typedarray/Int32Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -14682,8 +14669,6 @@ call $~lib/typedarray/Uint32Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -14832,8 +14817,6 @@ call $~lib/typedarray/Int64Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -14982,8 +14965,6 @@ call $~lib/typedarray/Uint64Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -15132,8 +15113,6 @@ call $~lib/typedarray/Float32Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -15282,8 +15261,6 @@ call $~lib/typedarray/Float64Array#some local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -17112,8 +17089,6 @@ call $~lib/typedarray/Int8Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -17271,8 +17246,6 @@ call $~lib/typedarray/Uint8Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -17430,8 +17403,6 @@ call $~lib/typedarray/Uint8ClampedArray#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -17593,8 +17564,6 @@ call $~lib/typedarray/Int16Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -17752,8 +17721,6 @@ call $~lib/typedarray/Uint16Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -17907,8 +17874,6 @@ call $~lib/typedarray/Int32Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -18062,8 +18027,6 @@ call $~lib/typedarray/Uint32Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -18217,8 +18180,6 @@ call $~lib/typedarray/Int64Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -18372,8 +18333,6 @@ call $~lib/typedarray/Uint64Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -18389,12 +18348,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/number/isNaN (; 358 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) - local.get $0 - local.get $0 - f32.ne - ) - (func $~lib/math/NativeMathf.mod (; 359 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 358 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18444,7 +18398,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f32.ne end if local.get $0 @@ -18641,7 +18596,7 @@ local.get $2 f32.reinterpret_i32 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 360 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 359 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -18656,7 +18611,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float32Array#every (; 361 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (; 360 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18722,7 +18677,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 362 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 361 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -18735,7 +18690,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 363 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 362 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18779,8 +18734,6 @@ call $~lib/typedarray/Float32Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -18796,12 +18749,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/number/isNaN (; 364 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.ne - ) - (func $~lib/math/NativeMath.mod (; 365 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 363 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -18851,7 +18799,8 @@ i32.const 1 else local.get $1 - call $~lib/number/isNaN + local.get $1 + f64.ne end if local.get $0 @@ -18884,7 +18833,9 @@ return end local.get $4 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $4 local.get $2 @@ -18916,7 +18867,9 @@ local.set $2 end local.get $5 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $5 local.get $3 @@ -19050,7 +19003,7 @@ local.get $2 f64.reinterpret_i64 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 366 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 364 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -19065,7 +19018,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float64Array#every (; 367 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (; 365 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -19131,7 +19084,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 368 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 366 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -19144,7 +19097,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 369 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 367 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -19188,8 +19141,6 @@ call $~lib/typedarray/Float64Array#every local.set $3 local.get $3 - i32.const 0 - i32.ne i32.eqz i32.eqz if @@ -19205,7 +19156,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 370 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 368 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -19265,7 +19216,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#forEach (; 371 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#forEach (; 369 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -19314,7 +19265,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 372 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 370 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -19377,7 +19328,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 373 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 371 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -19433,7 +19384,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#forEach (; 374 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (; 372 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -19482,7 +19433,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 375 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 373 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -19539,7 +19490,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 376 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 374 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -19595,7 +19546,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#forEach (; 377 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#forEach (; 375 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -19644,7 +19595,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 378 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 376 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -19701,7 +19652,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 379 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 377 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -19761,7 +19712,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#forEach (; 380 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#forEach (; 378 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -19810,7 +19761,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 381 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 379 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -19873,7 +19824,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 382 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 380 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -19929,7 +19880,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#forEach (; 383 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint16Array#forEach (; 381 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -19978,7 +19929,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 384 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 382 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -20035,7 +19986,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 385 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 383 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -20087,7 +20038,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#forEach (; 386 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (; 384 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -20136,7 +20087,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 387 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 385 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -20187,7 +20138,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 388 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 386 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -20239,7 +20190,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#forEach (; 389 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint32Array#forEach (; 387 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -20288,7 +20239,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 390 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 388 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -20339,7 +20290,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 391 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 389 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -20392,7 +20343,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#forEach (; 392 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (; 390 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -20441,7 +20392,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 393 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 391 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -20495,7 +20446,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 394 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 392 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -20548,7 +20499,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#forEach (; 395 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint64Array#forEach (; 393 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -20597,7 +20548,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 396 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 394 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -20651,7 +20602,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 397 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 395 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -20704,7 +20655,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#forEach (; 398 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float32Array#forEach (; 396 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -20753,7 +20704,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 399 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 397 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -20807,7 +20758,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 400 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 398 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -20860,7 +20811,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#forEach (; 401 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float64Array#forEach (; 399 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -20909,7 +20860,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 402 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 400 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -20963,7 +20914,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#reverse (; 403 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (; 401 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -21027,7 +20978,7 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 404 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 402 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -21213,7 +21164,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#reverse (; 405 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (; 403 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -21277,7 +21228,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint8Array#subarray (; 406 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#subarray (; 404 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -21384,7 +21335,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 407 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 405 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -21564,7 +21515,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#reverse (; 408 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reverse (; 406 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -21628,7 +21579,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (; 409 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (; 407 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -21735,7 +21686,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 410 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 408 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -21915,7 +21866,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#reverse (; 411 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (; 409 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -21979,7 +21930,7 @@ end local.get $1 ) - (func $~lib/typedarray/Int16Array#subarray (; 412 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (; 410 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -22086,7 +22037,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 413 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 411 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -22272,7 +22223,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#reverse (; 414 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (; 412 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -22336,7 +22287,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint16Array#subarray (; 415 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#subarray (; 413 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -22443,7 +22394,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 416 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 414 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -22623,7 +22574,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#reverse (; 417 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (; 415 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -22687,7 +22638,7 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 418 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 416 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -22861,7 +22812,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#reverse (; 419 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reverse (; 417 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -22925,7 +22876,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint32Array#subarray (; 420 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#subarray (; 418 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -23032,7 +22983,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 421 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 419 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -23206,7 +23157,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#reverse (; 422 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (; 420 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -23270,7 +23221,7 @@ end local.get $1 ) - (func $~lib/typedarray/Int64Array#subarray (; 423 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (; 421 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -23377,7 +23328,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 424 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 422 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -23554,7 +23505,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#reverse (; 425 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#reverse (; 423 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -23618,7 +23569,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint64Array#subarray (; 426 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#subarray (; 424 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -23725,7 +23676,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 427 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 425 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -23902,7 +23853,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#reverse (; 428 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (; 426 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -23966,7 +23917,7 @@ end local.get $1 ) - (func $~lib/typedarray/Float32Array#subarray (; 429 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (; 427 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -24073,7 +24024,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 430 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 428 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24250,7 +24201,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#reverse (; 431 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (; 429 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -24314,7 +24265,7 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 432 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 430 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24491,7 +24442,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#indexOf (; 433 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#indexOf (; 431 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -24591,7 +24542,7 @@ local.get $9 end ) - (func $~lib/typedarray/Int8Array#lastIndexOf (; 434 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#lastIndexOf (; 432 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -24687,7 +24638,7 @@ local.get $9 end ) - (func $~lib/typedarray/Int8Array#lastIndexOf|trampoline (; 435 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#lastIndexOf|trampoline (; 433 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -24707,7 +24658,7 @@ local.get $2 call $~lib/typedarray/Int8Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> (; 436 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> (; 434 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -25180,7 +25131,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#indexOf (; 437 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#indexOf (; 435 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -25278,7 +25229,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint8Array#lastIndexOf (; 438 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#lastIndexOf (; 436 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -25372,7 +25323,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint8Array#lastIndexOf|trampoline (; 439 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#lastIndexOf|trampoline (; 437 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -25392,7 +25343,7 @@ local.get $2 call $~lib/typedarray/Uint8Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> (; 440 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> (; 438 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -25863,7 +25814,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#indexOf (; 441 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#indexOf (; 439 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -25961,7 +25912,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (; 442 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (; 440 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -26055,7 +26006,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline (; 443 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline (; 441 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -26075,7 +26026,7 @@ local.get $2 call $~lib/typedarray/Uint8ClampedArray#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> (; 444 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> (; 442 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -26546,7 +26497,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#indexOf (; 445 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#indexOf (; 443 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -26646,7 +26597,7 @@ local.get $9 end ) - (func $~lib/typedarray/Int16Array#lastIndexOf (; 446 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#lastIndexOf (; 444 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -26742,7 +26693,7 @@ local.get $9 end ) - (func $~lib/typedarray/Int16Array#lastIndexOf|trampoline (; 447 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#lastIndexOf|trampoline (; 445 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -26762,7 +26713,7 @@ local.get $2 call $~lib/typedarray/Int16Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> (; 448 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> (; 446 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -27235,7 +27186,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#indexOf (; 449 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#indexOf (; 447 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -27333,7 +27284,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint16Array#lastIndexOf (; 450 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#lastIndexOf (; 448 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -27427,7 +27378,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint16Array#lastIndexOf|trampoline (; 451 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#lastIndexOf|trampoline (; 449 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -27447,7 +27398,7 @@ local.get $2 call $~lib/typedarray/Uint16Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> (; 452 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> (; 450 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -27918,7 +27869,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#indexOf (; 453 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#indexOf (; 451 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -28014,7 +27965,7 @@ local.get $9 end ) - (func $~lib/typedarray/Int32Array#lastIndexOf (; 454 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#lastIndexOf (; 452 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -28106,7 +28057,7 @@ local.get $9 end ) - (func $~lib/typedarray/Int32Array#lastIndexOf|trampoline (; 455 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#lastIndexOf|trampoline (; 453 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -28126,7 +28077,7 @@ local.get $2 call $~lib/typedarray/Int32Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> (; 456 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> (; 454 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -28595,7 +28546,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#indexOf (; 457 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#indexOf (; 455 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -28691,7 +28642,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint32Array#lastIndexOf (; 458 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#lastIndexOf (; 456 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -28783,7 +28734,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint32Array#lastIndexOf|trampoline (; 459 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#lastIndexOf|trampoline (; 457 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -28803,7 +28754,7 @@ local.get $2 call $~lib/typedarray/Uint32Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> (; 460 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> (; 458 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -29272,7 +29223,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#indexOf (; 461 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#indexOf (; 459 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -29368,7 +29319,7 @@ local.get $9 end ) - (func $~lib/typedarray/Int64Array#lastIndexOf (; 462 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#lastIndexOf (; 460 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -29460,7 +29411,7 @@ local.get $9 end ) - (func $~lib/typedarray/Int64Array#lastIndexOf|trampoline (; 463 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#lastIndexOf|trampoline (; 461 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -29480,7 +29431,7 @@ local.get $2 call $~lib/typedarray/Int64Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> (; 464 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> (; 462 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -29950,7 +29901,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#indexOf (; 465 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#indexOf (; 463 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -30046,7 +29997,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint64Array#lastIndexOf (; 466 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#lastIndexOf (; 464 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -30138,7 +30089,7 @@ local.get $9 end ) - (func $~lib/typedarray/Uint64Array#lastIndexOf|trampoline (; 467 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#lastIndexOf|trampoline (; 465 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -30158,7 +30109,7 @@ local.get $2 call $~lib/typedarray/Uint64Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> (; 468 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> (; 466 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -30628,7 +30579,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#indexOf (; 469 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#indexOf (; 467 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 f32) (local $5 i32) @@ -30724,7 +30675,7 @@ local.get $9 end ) - (func $~lib/typedarray/Float32Array#lastIndexOf (; 470 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf (; 468 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 f32) (local $5 i32) @@ -30816,7 +30767,7 @@ local.get $9 end ) - (func $~lib/typedarray/Float32Array#lastIndexOf|trampoline (; 471 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf|trampoline (; 469 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -30836,7 +30787,7 @@ local.get $2 call $~lib/typedarray/Float32Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> (; 472 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> (; 470 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -31306,7 +31257,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#indexOf (; 473 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#indexOf (; 471 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -31402,7 +31353,7 @@ local.get $9 end ) - (func $~lib/typedarray/Float64Array#lastIndexOf (; 474 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#lastIndexOf (; 472 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -31494,7 +31445,7 @@ local.get $9 end ) - (func $~lib/typedarray/Float64Array#lastIndexOf|trampoline (; 475 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#lastIndexOf|trampoline (; 473 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -31514,7 +31465,7 @@ local.get $2 call $~lib/typedarray/Float64Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> (; 476 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> (; 474 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -31984,7 +31935,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#includes (; 477 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#includes (; 475 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -32064,9 +32015,11 @@ i32.const 1 else local.get $10 - call $~lib/number/isNaN + local.get $10 + f64.ne + local.get $4 local.get $4 - call $~lib/number/isNaN + f64.ne i32.and end if @@ -32093,7 +32046,7 @@ br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 end ) - (func $~lib/typedarray/Float32Array#includes (; 478 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#includes (; 476 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 f32) (local $5 i32) @@ -32173,9 +32126,11 @@ i32.const 1 else local.get $10 - call $~lib/number/isNaN + local.get $10 + f32.ne + local.get $4 local.get $4 - call $~lib/number/isNaN + f32.ne i32.and end if @@ -32202,7 +32157,7 @@ br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 end ) - (func $~lib/util/number/decimalCount32 (; 479 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 477 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -32268,7 +32223,7 @@ end unreachable ) - (func $~lib/util/number/utoa32_lut (; 480 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 478 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -32410,7 +32365,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 481 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 479 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -32465,7 +32420,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 482 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 480 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -32474,7 +32429,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/string/String#get:length (; 483 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 481 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -32482,7 +32437,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/number/itoa_stream (; 484 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 482 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -32555,7 +32510,7 @@ end local.get $3 ) - (func $~lib/string/String#substring (; 485 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 483 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -32662,7 +32617,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/util/string/joinIntegerArray (; 486 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 484 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -32810,7 +32765,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int8Array#join (; 487 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#join (; 485 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -32826,7 +32781,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/string/compareImpl (; 488 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 486 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -32946,7 +32901,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/string/String.__eq (; 489 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 487 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -33019,12 +32974,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Int8Array#toString (; 490 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#toString (; 488 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Int8Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> (; 491 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> (; 489 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -33093,7 +33048,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/number/utoa32 (; 492 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 490 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -33128,14 +33083,14 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 493 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 491 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 494 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 492 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -33178,7 +33133,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 495 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 493 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -33326,7 +33281,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint8Array#join (; 496 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#join (; 494 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -33342,12 +33297,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint8Array#toString (; 497 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#toString (; 495 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Uint8Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> (; 498 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> (; 496 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -33416,7 +33371,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#join (; 499 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#join (; 497 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -33432,12 +33387,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint8ClampedArray#toString (; 500 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#toString (; 498 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Uint8ClampedArray#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> (; 501 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> (; 499 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -33506,7 +33461,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa (; 502 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 500 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -33515,7 +33470,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 503 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 501 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -33588,7 +33543,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 504 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 502 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -33736,7 +33691,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int16Array#join (; 505 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#join (; 503 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -33752,12 +33707,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Int16Array#toString (; 506 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#toString (; 504 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Int16Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> (; 507 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> (; 505 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -33826,14 +33781,14 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa (; 508 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 506 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 65535 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 509 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 507 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -33876,7 +33831,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 510 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 508 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -34024,7 +33979,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint16Array#join (; 511 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#join (; 509 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -34040,12 +33995,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint16Array#toString (; 512 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#toString (; 510 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Uint16Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> (; 513 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> (; 511 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -34114,12 +34069,12 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa (; 514 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 512 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 515 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 513 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -34176,7 +34131,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 516 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 514 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -34324,7 +34279,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int32Array#join (; 517 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#join (; 515 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -34340,12 +34295,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Int32Array#toString (; 518 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#toString (; 516 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Int32Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> (; 519 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> (; 517 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -34414,12 +34369,12 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa (; 520 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 518 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 521 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 519 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -34456,7 +34411,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 522 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 520 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -34604,7 +34559,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint32Array#join (; 523 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#join (; 521 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -34620,12 +34575,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint32Array#toString (; 524 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#toString (; 522 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Uint32Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> (; 525 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> (; 523 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -34694,7 +34649,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/number/decimalCount64 (; 526 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 524 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -34767,7 +34722,7 @@ end unreachable ) - (func $~lib/util/number/utoa64_lut (; 527 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 525 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -34894,7 +34849,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/itoa64 (; 528 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 526 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -34904,7 +34859,9 @@ (local $7 i32) (local $8 i64) local.get $0 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if i32.const 1720 call $~lib/rt/pure/__retain @@ -34981,12 +34938,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 529 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 527 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/itoa64 return ) - (func $~lib/util/number/itoa_stream (; 530 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 528 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -35001,7 +34958,9 @@ i32.add local.set $0 local.get $2 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $0 i32.const 48 @@ -35069,7 +35028,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 531 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 529 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -35217,7 +35176,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int64Array#join (; 532 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#join (; 530 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -35233,12 +35192,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Int64Array#toString (; 533 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#toString (; 531 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Int64Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> (; 534 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> (; 532 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -35307,7 +35266,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/number/utoa64 (; 535 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 533 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -35316,7 +35275,9 @@ (local $6 i32) (local $7 i64) local.get $0 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if i32.const 1720 call $~lib/rt/pure/__retain @@ -35372,12 +35333,12 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 536 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 534 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/utoa64 return ) - (func $~lib/util/number/itoa_stream (; 537 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 535 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -35391,7 +35352,9 @@ i32.add local.set $0 local.get $2 - i64.eqz + i64.const 0 + i64.ne + i32.eqz if local.get $0 i32.const 48 @@ -35438,7 +35401,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 538 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 536 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -35586,7 +35549,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint64Array#join (; 539 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#join (; 537 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -35602,12 +35565,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Uint64Array#toString (; 540 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#toString (; 538 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Uint64Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> (; 541 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> (; 539 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -35676,14 +35639,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/number/isFinite (; 542 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - ) - (func $~lib/array/Array#__unchecked_get (; 543 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 540 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -35692,7 +35648,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 544 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 541 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -35701,7 +35657,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 545 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 542 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -36203,7 +36159,7 @@ end unreachable ) - (func $~lib/util/number/prettify (; 546 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 543 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -36522,7 +36478,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 547 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 544 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -36944,7 +36900,7 @@ local.get $2 i32.add ) - (func $~lib/util/number/dtoa (; 548 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 545 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -36957,11 +36913,15 @@ return end local.get $0 - call $~lib/number/isFinite + local.get $0 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $0 - call $~lib/number/isNaN + local.get $0 + f64.ne if i32.const 2280 call $~lib/rt/pure/__retain @@ -37003,7 +36963,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $~lib/util/number/dtoa_stream (; 549 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 546 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -37029,11 +36989,15 @@ return end local.get $2 - call $~lib/number/isFinite + local.get $2 + f64.sub + f64.const 0 + f64.eq i32.eqz if local.get $2 - call $~lib/number/isNaN + local.get $2 + f64.ne if local.get $0 i32.const 78 @@ -37073,7 +37037,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/util/string/joinFloatArray (; 550 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinFloatArray (; 547 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -37224,7 +37188,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Float32Array#join (; 551 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#join (; 548 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -37240,12 +37204,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Float32Array#toString (; 552 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#toString (; 549 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Float32Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> (; 553 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> (; 550 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -37314,7 +37278,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/util/string/joinFloatArray (; 554 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinFloatArray (; 551 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -37462,7 +37426,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Float64Array#join (; 555 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#join (; 552 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -37478,12 +37442,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/typedarray/Float64Array#toString (; 556 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#toString (; 553 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 2192 call $~lib/typedarray/Float64Array#join ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> (; 557 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> (; 554 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -37552,13 +37516,13 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 558 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 555 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 ) - (func $~lib/arraybuffer/ArrayBuffer#slice (; 559 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#slice (; 556 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -37641,7 +37605,7 @@ local.get $7 call $~lib/rt/pure/__retain ) - (func $~lib/typedarray/Int8Array.wrap (; 560 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array.wrap (; 557 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -37760,7 +37724,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Int8Array.wrap|trampoline (; 561 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array.wrap|trampoline (; 558 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -37783,7 +37747,7 @@ local.get $2 call $~lib/typedarray/Int8Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> (; 562 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> (; 559 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -37906,7 +37870,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array.wrap (; 563 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array.wrap (; 560 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -38025,7 +37989,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Uint8Array.wrap|trampoline (; 564 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array.wrap|trampoline (; 561 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -38048,7 +38012,7 @@ local.get $2 call $~lib/typedarray/Uint8Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> (; 565 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> (; 562 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -38169,7 +38133,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray.wrap (; 566 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray.wrap (; 563 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -38288,7 +38252,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Uint8ClampedArray.wrap|trampoline (; 567 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray.wrap|trampoline (; 564 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -38311,7 +38275,7 @@ local.get $2 call $~lib/typedarray/Uint8ClampedArray.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> (; 568 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> (; 565 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -38432,7 +38396,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array.wrap (; 569 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array.wrap (; 566 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -38551,7 +38515,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Int16Array.wrap|trampoline (; 570 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array.wrap|trampoline (; 567 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -38574,7 +38538,7 @@ local.get $2 call $~lib/typedarray/Int16Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> (; 571 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> (; 568 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -38697,7 +38661,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array.wrap (; 572 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array.wrap (; 569 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -38816,7 +38780,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Uint16Array.wrap|trampoline (; 573 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array.wrap|trampoline (; 570 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -38839,7 +38803,7 @@ local.get $2 call $~lib/typedarray/Uint16Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> (; 574 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> (; 571 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -38960,7 +38924,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array.wrap (; 575 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array.wrap (; 572 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -39079,7 +39043,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Int32Array.wrap|trampoline (; 576 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array.wrap|trampoline (; 573 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -39102,7 +39066,7 @@ local.get $2 call $~lib/typedarray/Int32Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> (; 577 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> (; 574 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -39221,7 +39185,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array.wrap (; 578 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array.wrap (; 575 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -39340,7 +39304,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Uint32Array.wrap|trampoline (; 579 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array.wrap|trampoline (; 576 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -39363,7 +39327,7 @@ local.get $2 call $~lib/typedarray/Uint32Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> (; 580 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> (; 577 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -39482,7 +39446,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array.wrap (; 581 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array.wrap (; 578 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -39601,7 +39565,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Int64Array.wrap|trampoline (; 582 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array.wrap|trampoline (; 579 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -39624,7 +39588,7 @@ local.get $2 call $~lib/typedarray/Int64Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> (; 583 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> (; 580 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -39744,7 +39708,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array.wrap (; 584 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array.wrap (; 581 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -39863,7 +39827,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Uint64Array.wrap|trampoline (; 585 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array.wrap|trampoline (; 582 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -39886,7 +39850,7 @@ local.get $2 call $~lib/typedarray/Uint64Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> (; 586 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> (; 583 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -40006,7 +39970,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array.wrap (; 587 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array.wrap (; 584 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -40125,7 +40089,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Float32Array.wrap|trampoline (; 588 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array.wrap|trampoline (; 585 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -40148,7 +40112,7 @@ local.get $2 call $~lib/typedarray/Float32Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> (; 589 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> (; 586 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -40268,7 +40232,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array.wrap (; 590 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array.wrap (; 587 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -40387,7 +40351,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/typedarray/Float64Array.wrap|trampoline (; 591 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array.wrap|trampoline (; 588 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -40410,7 +40374,7 @@ local.get $2 call $~lib/typedarray/Float64Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> (; 592 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> (; 589 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -40530,7 +40494,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $start:std/typedarray (; 593 ;) (type $FUNCSIG$v) + (func $start:std/typedarray (; 590 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -42562,7 +42526,7 @@ call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> ) - (func $start (; 594 ;) (type $FUNCSIG$v) + (func $start (; 591 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -42572,22 +42536,22 @@ end call $start:std/typedarray ) - (func $~lib/array/Array#__visit_impl (; 595 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 592 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 596 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 593 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 597 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 594 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 598 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 595 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 599 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 596 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 600 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 597 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -42717,7 +42681,7 @@ end end ) - (func $~lib/rt/__visit_members (; 601 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 598 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default @@ -42775,6 +42739,6 @@ end return ) - (func $null (; 602 ;) (type $FUNCSIG$v) + (func $null (; 599 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/unary.optimized.wat b/tests/compiler/unary.optimized.wat index cfa2553843..311ea53583 100644 --- a/tests/compiler/unary.optimized.wat +++ b/tests/compiler/unary.optimized.wat @@ -8,10 +8,10 @@ (export "memory" (memory $0)) (start $start) (func $start:unary (; 0 ;) (type $FUNCSIG$v) - (local $0 i32) - (local $1 i64) - (local $2 f32) - (local $3 f64) + (local $0 f32) + (local $1 f64) + (local $2 i32) + (local $3 i64) global.get $unary/i i32.const 1 i32.add @@ -54,18 +54,18 @@ i32.sub global.set $unary/i global.get $unary/i - local.tee $0 + local.tee $2 i32.const 1 i32.add global.set $unary/i - local.get $0 + local.get $2 global.set $unary/i global.get $unary/i - local.tee $0 + local.tee $2 i32.const 1 i32.sub global.set $unary/i - local.get $0 + local.get $2 global.set $unary/i global.get $unary/I i64.const 1 @@ -94,7 +94,8 @@ i64.const 2 global.set $unary/I global.get $unary/I - i64.eqz + i64.const 0 + i64.eq i64.extend_i32_u global.set $unary/I global.get $unary/I @@ -110,18 +111,18 @@ i64.sub global.set $unary/I global.get $unary/I - local.tee $1 + local.tee $3 i64.const 1 i64.add global.set $unary/I - local.get $1 + local.get $3 global.set $unary/I global.get $unary/I - local.tee $1 + local.tee $3 i64.const 1 i64.sub global.set $unary/I - local.get $1 + local.get $3 global.set $unary/I global.get $unary/f f32.const 1 @@ -148,8 +149,14 @@ f32.const 1.25 global.set $unary/f global.get $unary/f + local.tee $0 f32.const 0 + f32.ne + local.get $0 + local.get $0 f32.eq + i32.and + i32.eqz global.set $unary/i global.get $unary/f f32.const 1 @@ -160,18 +167,18 @@ f32.sub global.set $unary/f global.get $unary/f - local.tee $2 + local.tee $0 f32.const 1 f32.add global.set $unary/f - local.get $2 + local.get $0 global.set $unary/f global.get $unary/f - local.tee $2 + local.tee $0 f32.const 1 f32.sub global.set $unary/f - local.get $2 + local.get $0 global.set $unary/f global.get $unary/F f64.const 1 @@ -198,8 +205,14 @@ f64.const 1.25 global.set $unary/F global.get $unary/F + local.tee $1 f64.const 0 + f64.ne + local.get $1 + local.get $1 f64.eq + i32.and + i32.eqz i64.extend_i32_u global.set $unary/I global.get $unary/F @@ -211,18 +224,18 @@ f64.sub global.set $unary/F global.get $unary/F - local.tee $3 + local.tee $1 f64.const 1 f64.add global.set $unary/F - local.get $3 + local.get $1 global.set $unary/F global.get $unary/F - local.tee $3 + local.tee $1 f64.const 1 f64.sub global.set $unary/F - local.get $3 + local.get $1 global.set $unary/F ) (func $start (; 1 ;) (type $FUNCSIG$v) diff --git a/tests/compiler/unary.untouched.wat b/tests/compiler/unary.untouched.wat index e4196758f7..516a6b0322 100644 --- a/tests/compiler/unary.untouched.wat +++ b/tests/compiler/unary.untouched.wat @@ -10,10 +10,10 @@ (export "memory" (memory $0)) (start $start) (func $start:unary (; 0 ;) (type $FUNCSIG$v) - (local $0 i32) - (local $1 i64) - (local $2 f32) - (local $3 f64) + (local $0 f64) + (local $1 i32) + (local $2 i64) + (local $3 f32) i32.const 1 drop i32.const -1 @@ -30,8 +30,14 @@ f64.const -1.25 drop f64.const 1.25 + local.tee $0 f64.const 0 + f64.ne + local.get $0 + local.get $0 f64.eq + i32.and + i32.eqz drop global.get $unary/i drop @@ -99,18 +105,18 @@ global.get $unary/i global.set $unary/i global.get $unary/i - local.tee $0 + local.tee $1 i32.const 1 i32.add global.set $unary/i - local.get $0 + local.get $1 global.set $unary/i global.get $unary/i - local.tee $0 + local.tee $1 i32.const 1 i32.sub global.set $unary/i - local.get $0 + local.get $1 global.set $unary/i global.get $unary/I drop @@ -119,7 +125,9 @@ i64.sub drop global.get $unary/I - i64.eqz + i64.const 0 + i64.ne + i32.eqz drop global.get $unary/I i64.const -1 @@ -146,7 +154,9 @@ i64.const -1 global.set $unary/I i64.const 1 - i64.eqz + i64.const 0 + i64.ne + i32.eqz i64.extend_i32_u global.set $unary/I i64.const 1 @@ -160,7 +170,9 @@ i64.sub global.set $unary/I global.get $unary/I - i64.eqz + i64.const 0 + i64.ne + i32.eqz i64.extend_i32_u global.set $unary/I global.get $unary/I @@ -180,18 +192,18 @@ global.get $unary/I global.set $unary/I global.get $unary/I - local.tee $1 + local.tee $2 i64.const 1 i64.add global.set $unary/I - local.get $1 + local.get $2 global.set $unary/I global.get $unary/I - local.tee $1 + local.tee $2 i64.const 1 i64.sub global.set $unary/I - local.get $1 + local.get $2 global.set $unary/I global.get $unary/f drop @@ -199,8 +211,14 @@ f32.neg drop global.get $unary/f + local.tee $3 f32.const 0 + f32.ne + local.get $3 + local.get $3 f32.eq + i32.and + i32.eqz drop global.get $unary/f f32.const 1 @@ -223,8 +241,14 @@ f32.const -1.25 global.set $unary/f f64.const 1.25 + local.tee $0 f64.const 0 + f64.ne + local.get $0 + local.get $0 f64.eq + i32.and + i32.eqz global.set $unary/i global.get $unary/f global.set $unary/f @@ -232,8 +256,14 @@ f32.neg global.set $unary/f global.get $unary/f + local.tee $3 f32.const 0 + f32.ne + local.get $3 + local.get $3 f32.eq + i32.and + i32.eqz global.set $unary/i global.get $unary/f f32.const 1 @@ -248,18 +278,18 @@ global.get $unary/f global.set $unary/f global.get $unary/f - local.tee $2 + local.tee $3 f32.const 1 f32.add global.set $unary/f - local.get $2 + local.get $3 global.set $unary/f global.get $unary/f - local.tee $2 + local.tee $3 f32.const 1 f32.sub global.set $unary/f - local.get $2 + local.get $3 global.set $unary/f global.get $unary/F drop @@ -267,8 +297,14 @@ f64.neg drop global.get $unary/F + local.tee $0 f64.const 0 + f64.ne + local.get $0 + local.get $0 f64.eq + i32.and + i32.eqz drop global.get $unary/F f64.const 1 @@ -291,8 +327,14 @@ f64.const -1.25 global.set $unary/F f64.const 1.25 + local.tee $0 f64.const 0 + f64.ne + local.get $0 + local.get $0 f64.eq + i32.and + i32.eqz i64.extend_i32_u global.set $unary/I global.get $unary/F @@ -301,8 +343,14 @@ f64.neg global.set $unary/F global.get $unary/F + local.tee $0 f64.const 0 + f64.ne + local.get $0 + local.get $0 f64.eq + i32.and + i32.eqz i64.extend_i32_u global.set $unary/I global.get $unary/F @@ -318,18 +366,18 @@ global.get $unary/F global.set $unary/F global.get $unary/F - local.tee $3 + local.tee $0 f64.const 1 f64.add global.set $unary/F - local.get $3 + local.get $0 global.set $unary/F global.get $unary/F - local.tee $3 + local.tee $0 f64.const 1 f64.sub global.set $unary/F - local.get $3 + local.get $0 global.set $unary/F ) (func $start (; 1 ;) (type $FUNCSIG$v)